开发过程中 Oracle 数据库常见问题和解决思路

oracle 启动非正常关闭

1、先登录服务器后,切换到oracle用户状态下: su - oracle

2、检查oracle监听器运行状态:lsnrctl status命令查看。

表示监听没有启动。

3、执行启动监听,通过命令:lsnrctl start (lsnrctl stop 关闭监听)

表示端口已启动成功。

4、如果启动报错,listener.ora文件打开,调整HOST IP

5、进入sqlplus,命令:sqlplus /nolog

6、管理员sysdba权限登陆oracle:conn /as sysdba

7、启动服务(实例):startup

8、关闭服务(实例):shutdown immediate;

SQL> 下怎么退出编辑?

答:按键 Ctrl + D 或 SQL>exit

数据库启动分为三个步骤:

  • SQL> startup nomount; //启动实例,不加载数据库

  • SQL> alter database mount; //加载数据库(挂起)

  • SQL> alter database open; //打开数据库

等同于 SQL> startup

startup参数

不带参数: 启动数据库实例并打开数据库,这种情况下用户才能使用数据库

nomount:只启动数据库实例,但不打开数据库

mount: 加载数据库。(挂起)

1、startup nomount – 启动实例,不加载数据库(模式一)

​ nomount:在这一阶段,只需要读取initSID.ora文件,启动数据库实例,创建后台进程。在initSID.ora文件中,可以定位 SPFILEORAC.ora文件,这是参数文件,通过它可以初始化SGA和启动后台进程。并可以定位控制文件位置。在此阶段,可以执行的操作有:重建控 制文件,重建数据库。

2、alter database mount – 加载数据库(模式二)

​ mount:在nomount阶段,可以通过读取控制文件来转换到mount阶段。在数据库加载阶段(mount),所有的数据文件和联机日志文件的名称和位置都从控制文件中读取,但是并没有真正查找这些文件。在此阶段,可以执行的操作有:数据库日志归档、数据库介质恢复、使数据文件联机或脱机、重定位 数据文件和联机日志文件。

3、alter database open – 打开数据库(模式三)

​ open:通过查找定位并打开数据文件和联机日志文件来切换到open阶段。此时数据库可用,可以建立会话。

数据库的关闭

SQL> shutdown immediate;(推荐)

也分三个步骤:

  • SQL> alter database close; //关闭数据库(CLOSE 关闭数据文件)

  • SQL> alter database dismount; //卸载数据库(关闭控制文件 DISMOUNT),

  • SQL> shutdown //关闭Oracle实例(SHUTDOWN)

也可以查询oracle的进程:

ps -ef|grep ora_dbw0_$ORACLE_SID

然后kill掉

kill -9 PID

shutdown的参数

normal 等待所有连接用户断开后才执行关闭数据库任务(等待所有的用户断开连接)

immediate 等待用户执行完正在执行的语句后就断开连接,并不允许新用户连接。

transactional 等待用户执行完当前事务后断开连接,并不允许新的用户连接数据库。

abort 不等待,强行断开连接并直接关闭数据库。

数据库重启(也就是启动的force模式)

SQL> startup force //不建议使用

这种模式将终止实例并重新启动数据库(open),这种模式具有一定的强制性(比如在其他启动模式失效的时候可以尝试这种模式)

方式2:(推荐)

SQL> shutdown immediate

SQL> startup open

Oracle删除所有的表,视图

delete tables
select 'drop table ' || table_name ||';'||chr(13)||chr(10) from user_tables;   
delete views
select 'drop view ' || view_name||';'||chr(13)||chr(10) from user_views;  
delete seqs
select 'drop sequence ' || sequence_name||';'||chr(13)||chr(10) from user_sequences; 
delete functions
select 'drop function ' || object_name||';'||chr(13)||chr(10) from user_objects where object_type='FUNCTION'; 
delete procedure
select 'drop procedure ' || object_name||';'||chr(13)||chr(10) from user_objects where object_type='PROCEDURE';
delete package
select 'drop package ' || object_name||';'||chr(13)||chr(10) from user_objects where object_type='PACKAGE'; 

oracle 12c 安装报错 :display not set. please set the display and try again

Depending on the Unix Shell, you can use one of the following commands as examples to set the DISPLAY environment variable:
- For csh:   % setenv DISPLAY 192.168.1.128:0.0
- For sh, ksh and bash: $ DISPLAY=192.168.1.128:0.0; export DISPLAY
Use the following command to see what shell is being used:
echo $SHELL
Use the following command to view the current DISPLAY environment variable setting:
echo $DISPLAY
- Make sure that client users are authorized to connect to the X Server.
To enable client users to access the X Server, open an xterm, dtterm or xconsole as the user that started the session and type the following command:
% xhost +
To test that the DISPLAY environment variable is set correctly, run a X11 based program that comes with the native operating system such as 'xclock':
% <full path to xclock.. see below>
If you are not able to run xclock successfully, please refer to your PC-X Server or OS vendor for further assistance.
Typical path for xclock: /usr/X11R6/bin/xclock

解决方案1:使用 oracle 用户登录

解决方案2:以root用户登录,输入命令xdpyinfo,记录下里面的name of display:后的字符串,如 name of display:127.0.0.1:1.0,找到当前登录的display信息,然后使用命令:export DISPLAY=:2.0

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值