记一次Oracle数据库安装问题解决

开门见山,直接说明问题吧
1.安装好后,无法启动数据库
报错 could not open parameter file ‘/u01/app/oracle/product/11.1.0/db_1/dbs/initORCL.ora’
搜索网页发现是dbs目录下没有生成 initORCL.ora文件
需要把/u01/app/oracle/admin/tyvss/pfile/目录下的init.ora.2212019172159文件拷贝到上述目录下
#cp -p /u01/app/oracle/admin/tyvss/pfile/init.ora.2212019172159 /u01/app/oracle/product/11.2.0/db_1/dbs/initorcl.ora

再次启动数据库成功,但是有新的问题,请看2步骤

2.启动后数据库报错MEMORY_TARGET not supported on this system
继续百度,搜到
由于memory_max_target和memory_target不匹配导致的
查找资料后发现在oracle 11g中新增的内存自动管理的参数MEMORY_TARGET,它能自动调整SGA和PGA,这个特性需要用到/dev/shm共享文件系统,而且要求/dev/shm必须大于MEMORY_TARGET,如果/dev/shm比MEMORY_TARGET小,就会报错。

查看数据库的MEMORY_TARGET值,MEMORY_TARGET=25856M,约25GB
SQL> show parameters target ;

查看系统的 /dev/shm,当前仅16GB
#df -h

重新挂载
可以增大/dev/shm

mount -t tmpfs shmfs -o size=32G /dev/shm

但如果之前已经mount过了,则执行remount

mount -o remount,size=32G /dev/shm

启动数据库试了还是同样的报错,再次查找,发现有网友提到 MEMORY_TARGET大于等于3/4*(/dev/shm),25*3/4=33G
保守起见,直接让重新挂载64GB

mount -o remount,size=64G /dev/shm

重启数据库,成功

但是还是有其他错误,请看步骤3

3.启动数据库虽然success,但是末尾 cannot mount database in EXCLUSIVE mode (数据库没有mount上)

搜索网页发现,该情况下有三种可能
(1) Oracle的共享内存段或信号量没有被释放;
(2) Oracle的后台进程(如SMON、PMON、DBWn等)没有被关闭;
(3) 用于锁内存的文件lk和sgadef.dbf文件没有被删除。

当时出现直接关机的情况,所以极有可能是锁内存的文件没有被释放

进入数据库安装目录解除占用
[root@vss02 pfile]#cd /u01/app/oracle/product/11.2.0/db_1/dbs/

删除lkTYVSS文件
再次启动数据库,突发另外一个错误 ORA-00205: error in identifying control file, check alert log for more info

继续解决,
关闭数据库 shu immediate
#ps -ef |grep ora_ |grep tyvss
根据网友思路,有1个ora_dbw0进程导致该错误,我的机器却6个ora_dbw进程,

#kill -9 1550
关闭一个后其他ora_dbw进程也死了

启动数据库正常
终于正常了。

4.使用数据库连接工具Navicat连接数据库
又双叒报错了The listener supports no services
启动监听服务 lsnrctl start
提示The listener supports no services
因同事安装时不知道数据实例创建了什么,
先查找数据库实例名称

修改 /u01/app/oracle/product/11.2.0/db_1/network/admin/listener.ora文件
添加标红文件

再次启动数据库,终于成功了

6.一系列创建创建数据库和表之后发现
中文乱码
全局疯狂????
想到同事安装数据库时,选用的是英文字符集,需要改成中文字符集
操作如下
首先查看服务端字符集
select * from v$nls_parameters where parameter = ‘NLS_CHARACTERSET’
NLS_CHARACTERSET WE8MSWIN1252
然后用sys用户进行修改

sqlplus
conn /as sysdba
输入口令:
shutdown immediate;
startup mount;
ALTER SESSION SET SQL_TRACE=TRUE;
ALTER> SYSTEM ENABLE RESTRICTED SESSION;
ALTER SYSTEM SET JOB_QUEUE_PROCESSES=0;
ALTER SYSTEM SET AQ_TM_PROCESSES=0;
ALTER DATABASE OPEN;
alter database character set ZHS16GBK;
ORA-12712: new character set must be a superset of old character set
RROR at line 1:
结果报错,提示新字符集必须是老字符集的超集。
于是强制转换
ALTER DATABASE character set INTERNAL_USE ZHS16GBK;
shutdown immediate;
STARTUP;
解决字符集问题,重新查看表内容
有趣的是之前表里的“???”全部变成“靠靠靠”,当时差点笑了出来
只能重新创建数据可和表了。
之后就没有出现其他问题了。
全程折腾3个多小时。感谢强大的百度和bing,以及各大博客网站。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值