参考文献
- 执行root.sh出现ohasd failed解决方案
- inux 7安装rac 11gR2时运行root.sh报错找不到ohas服务
- Error in invoking target 'agent nmhs' of makefile
- Oracle 11g Data Guard 使用duplicate from active database 创建 standby database
一、背景介绍
接到需求要安装单机使用ASM存储的数据库,原本以为是轻车熟路的事情,emm,世界上哪有那么多轻松的活给你干,废话少说,进主题吧。
二、 关于安装思路
一直以来搭建的都是RAC+ASM存储或者单机物理存储,这次说要安装单机+ASM存储,确实有点懵逼,不过还是迷之自信,毕竟是安装过十多套RAC+ASM存储和几十遍单机物理存储的男人。
一上手就按单机物理存储的安装模式直接安装DB软件,看DB创建过程中是不是会有什么选项可以创建并使用asm存储盘,可惜世界上并没有奇迹,在安装好DB软件创建DB的过程中发现要使用asm存储一定要安装GI程序!
于是铲除已安装好的DB程序,按照RAC+ASM存储的方式重新安装,在grid用户下安装GI,安装过程中发现没有分配给grid的那5个1g的存储,于是选择在oracle用户下作死安装GI和DB软件,结果又是一顿铲除重装。
单机+ASM存储的正确安装方式:grid用户安装GI,oracle用户安装DB,所有物理磁盘都拿来做data磁盘组!
三、 安装GI时的问题
安装GI在执行root.sh脚本报错,报如下错误:
ohasd failed to start at /u01/app/11.2.0/grid/crs/install/roothas.pl line 377, line 4.
/u01/app/11.2.0/grid/perl/bin/perl -I/u01/app/11.2.0/grid/perl/lib -I/u01/app/11.2.0/grid/crs/install /u01/app/11.2.0/grid/crs/install/roothas.pl execution failed
解决方案如下:
- 回退root.sh脚本操作
$ORACLE_HOME/crs/install/roothas.pl -deconfig -force -verbose
- 清空/var/tmp/.oracle/npohasd文件
在执行root.sh脚本时出现Adding daemon to inittab的时候,在另一个窗口使用root立即执行以下命令:
dd if=/var/tmp/.oracle/npohasd of=/dev/null bs=1024 count=1
顺利安装结束。
但是,以上方法治标不治本,后期一旦停了has,启动has都需要另开窗口执行上面的dd命令。此问题根本原因在于,RHEL7采用systemd启动,而之前的RHEL版本采用init启动。目前搜到的可用解决方案如下:
- 创建服务ohas.service的服务文件并赋予权限
touch /usr/lib/systemd/system/ohas.service
chmod 777 /usr/lib/systemd/system/ohas.service
- 往ohas.service服务文件添加启动ohasd的相关信息
cat >> /usr/lib/systemd/system/ohas.service <<EOF
[Unit]
Description=Oracle High Availability Services
After=syslog.target
[Service]
ExecStart=/etc/init.d/init.ohasd run >/dev/null 2>&1 Type=simple
Restart=always
[Install]
WantedBy=multi-user.target
EOF
- 加载、启动服务
重新加载守护进程
systemctl daemon-reload
设置守护进程自动启动
systemctl enable ohas.service
手工启动ohas服务
systemctl start ohas.service
查看ohas服务状态
systemctl status ohas.service
至此,问题得到解决。
四、安装DB时的问题
DB在安装到86%时报错,解决方案为另开一新窗口编辑报错相关文件
vim $ORACLE_HOME/sysman/bin/ins_emagent.mk
用/NMECTL定位我们要修改的地方,在
$(MK_EMAGENT_NMECTL)
后添加-lnnz11,将其修改为
$(MK_EMAGENT_NMECTL) -lnnz11
回到安装窗口retry即可顺利安装完成。
四、Duplicate搭建Physical Standby
简单记录下要点
- 主库设置归档模式
archive log list;
用此命令检查数据库是否处于归档模式,若不是,停库启动到mount状态,执行
alter database archivelog;
将数据库置于归档模式,并将数据库启至open状态。
- 主库设置force logging
select force_logging from v$database;
可用以上命令查询主库是否处于force logging状态,若为no,则执行
alter database force logging;
将主库设置为force logging。
- 主库相关参数配置
配置好主库的以下参数
log_archive_config
log_archive_dest_n
standby_file_management='auto';
fal_server
fal_client
- 备库相关文件配置
将主库上的pfile参数文件、密码文件拷贝至备库相应目录,修改好备库参数文件里的以下参数
log_archive_config
audit_file_dest
log_archive_dest_n
standby_file_management='auto';
fal_server
fal_client
db_unique_name
control_files
若主库无pfile参数文件,可用以下命令创建:
create pfile from spfile;
记得给备库创建audit_file_dest的目录
- 配置好主备库的listener.ora与tnsname.ora文件
这两个文件都修改oracle用户目录下的,主库一般有动态监听,不需要手动修改listener.ora文件配置静态监听,备库由于无法open,必须修改listener.ora文件配置静态监听。用lsnrctl status查看监听状态报TNS之类的错误,可先stop监听,再start监听。tnsname.ora文件中添加主备库的相关信息即可。 - Duplicate搭建Physical standby
不建议用参考文献4中第5步的方法,对于大库会自动断开ssh连接导致命令执行中断,采取以下方式将命令置于后台执行。
编辑文件
vim rman_duplicate.sh
rman target sys/主库口令@主库连接串 auxiliary sys/备库口令@备库连接串 nocatalog log=rman_duplicate.log << EOF
run{
duplicate target database for standby from active database;
}
exit;
EOF
用命令nohup sh rman_duplicate.sh &将代码置于后台运行,tail -100f rman_duplicate.out查看命令执行情况。
第六步中通道分配与主库RMAN配置有关,可进主库rman后show all查看主库默认通道数量。
cofigure device type disk parallelism 1 backup type to backupset;
主库默认只分配一条通道,可以执行一下命令将其修改为10条,加快数据从主库传输至备库的速率
configure device type disk parallelism 10 backup type to backupset;
五、总结
多搜索,多请教,多干活,多进步*_*
网友评论