后端架构

Oracle 数据库常见问题

原创 · 开发经验

常用命令

以管理员模式登录(sqlplus中):sqlplus / as sysdba; 以管理员模式登录(cmd中):sqlplus "/ as sysdba"; 启动数据库:startup; 停止数据库:shutdown immediate;

远程连接数据库:

bashconn sys/sys@ip:1521/实例名 as sysdba;

启动监听服务:lsnrctl start; 停止监听服务:lsnrctl stop; 查看监听状态:lsnrctl status; 删除用户:drop user "name" cascade; 修改用户口令:alter user "name" identified by "password"; 查看用户当前连接数:select count(*) from sys.v_$session; 查询数据库文件:select * from dba_data_files; 修改连接数:(注:要重启数据库)

bashalter system set processes=1000 scope=spfile;
shutdown immediate;

startup;

创建表空间:

bash# create tablespace niuniu datafile 'C:\app\Administrator\oradata\orcl\niuniu.dbf' size 200m autoextend on next 10m maxsize unlimited;

创建临时表空间

bash# create temporary tablespace niuniu_temp tempfile 'C:\app\Administrator\oradata\orcl\niuniu_temp.dbf' size 50m autoextend on next 10m maxsize unlimited;

创建新用户niuniu,分配默认表空间并授权给niuniu用户

bash# create user niuniu identified by niuniu;
# alert user niuniu default tablespace tablespacename;
# grant connect,resource,dba to niuniu;

修改数据库的数据文件

bash# alter database datafile 'C:\app\Administrator\oradata\orcl\niuniu.dbf' autoextend on;

删除一个表空间和数据库文件

bash# drop tablespace histdb including contents and datafiles;

以创建的用户登录

bash# conn username/password;

查询表空间位置

bash# select file_name from dba_data_files;

导出和导入数据库命令

bash# exp 用户/密码@数据库名 file=d:\导出名称.dmp full=y
# imp 用户/密码@数据库名 file=d:\导出名称.dmp

误删除表空间文件解决办法

win+R cmd;

bash# sqlplus "/as sysdba";
# shutdown immediate;
# startup;//观察误删除的表空间文件路径
# shutdown immediate;
# startup mount;//挂起启动模式
# alter database datafile '误删除的表空间文件路径' offline drop;//离线删除表空间文件
# alter database open;//一定要带分号,更改数据库
# shutdown immediate;
# startup;

oracle11g用exp命令不能导出空表

oracle11g中有个新特性,当表无数据时,不分配segment,以节省空间。解决方法:插入一条数据提交,然后删除再次提交,在plsql中edit data ,插入一条数据,然后删除。插入数据,再删除,则产生segment。导出时则可导出空表

ORA-12514:无法识别连接字符串中的标示符

找到C:\app\Administrator\product\11.2.0\dbhome_1\NETWORK\ADMIN,目录下面的listener.ora文件,用记事本打开,将下面的代码复制到(SID_DESC =...)的后面,注意位置 (SID_DESC = (GOLBAL_DBNAME= orcl) (ORACLE_HOME = C:\app\Administrator\product\11.2.0\dbhome_1) (SID_NAME=orcl))

Oracle SQL Developer配置与使用

点击SQL Developer应用程序,第一次打开时,会提示配置java.exe,找到oracle安装目录下的java.exe,默认路径C:\app\Administrator\product\11.2.0\dbhome_1\jdk\bin\java.exe。配置好java路径后,点击ok,进入配置文件类型关联配置,此处选择SQL关联即可,确定。进入了SQL Developer主界面,左侧有连接的地方,鼠标右键新建连接,在弹出框的连接类型填写TNS,网络别名ORCL,点击测试。

Oracle备份问题

可以用orcl登录PL/SQL,工具-->导出用户对象-->选择用户(可以导出视图、函数、表等,但是不含数据);然后可以在执行命令 工具-->导出表-->SQL插入选项卡,可以将数据导出来。 重装Oracle提示出现启动服务时出现错误,找不到服务OracleMTSRecoveryService 解决办法:启动OracleMTSRecoveryService 提示路径找不到 在注册表 HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\OracleMTSRecoveryService 修改对应的路径解决,修改ImagePath的值即可 ,oracle安装路径 如:D:\app\tina\product\11.2.0\dbhome_1\BIN\omtsreco.exe "OracleMTSRecoveryService"