操作前提:
有主备环境基础上重新搭建主备(保留原有数据)
操作原因:
在已有数据库环境存在问题且无法修复,但是业务数据不能删除,并且服务器资源紧缺,不能提供其他服务器来新建主备的时候,就可以在已安装主备的机器上进行操作。
1 停所有监视器
bin目录下
./DmMonitorServiceMONITOR stop
2 启动非确认监视器 将主机退出守护进程
2.1 利用备份的监视器配置文件前台启动非确认监视器
先将监视器配置文件修改为非确认
vi dmmonitor.ini
MON_DW_CONFIRM = 1 改为 MON_DW_CONFIRM = 0
2.2启动:
bin目录下
./dmmonitor /data/dmdata/DW/dmmonitor.ini
login
detach database DW01
3 守护进程配置文件的切换模式改为手动
vi dmwatcher.ini
DW_MODE = AUTO
改为
DW_MODE = MANUA
4 停备机服务:
先停守护进程:
./DmWatcherServiceDW02 stop
再停数据库服务:
./DmServiceDM02 stop
查看进程是否停掉
ps -ef|grep dmdba
5 备机服务器初始化新的同名实例:
5.1 备份数据目录
cd /data/dmdata/
mv DW DW_bak0429
5.2 按照相关参数要求初始化实例(数据库名和原库保持一致)
./dminit PATH=/data/dmdata PAGE_SIZE=32 EXTENT_SIZE=32 LOG_SIZE=2048 CHARSET=1 LENGTH_IN_CHAR=Y db_name=DW
5.3 拷贝相关ini文件到新的实例目录下
cd /data/dmdata/DW_bak0429
cp dmarch.ini dmwatcher.ini dm.ini dmmal.ini sqllog.ini dmmonitor.ini /data/dmdata/DW/
6 启动备库新的实例服务 (此时已为新的单机库,不用启动守护进程)
./DmServiceDM01 start
尝试登录
SYSDBA/SYSDBA
7 使用dts将主库数据迁移到备机的新创建的实例中
***
8 备机rman备份(已经是单机)
./dmrman
BACKUP DATABASE '/data/dmdata/DW/dm.ini' BACKUPSET '/data/dmbak/dw_full_bak_20220429';
9 停主机服务:
./DmWatcherServiceDW01 stop
再停数据库服务:
./DmServiceDM01 stop
查看进程是否停掉
10 备份:
cd /data/dmdata/
mv DW DW_bak0429
cd /opt/dmdbms/bin
./dmrman
BACKUP DATABASE '/data/dmdata/DW/dm.ini' BACKUPSET '/data/dmbak/dw_full_bak_20220429pri';
11 主机服务器初始化新的同名实例并备份
11.1按照相关参数要求初始化实例(数据库名和原库保持一致)
./dminit PATH=/data/dmdata PAGE_SIZE=32 EXTENT_SIZE=32 LOG_SIZE=2048 CHARSET=1 LENGTH_IN_CHAR=Y db_name=DW
11.2拷贝相关ini文件到新的实例目录下
cd /data/dmdata/DW_bak0429
cp dmarch.ini dmwatcher.ini dm.ini dmmal.ini sqllog.ini dmmonitor.ini /data/dmdata/DW/
12 启动主库新的实例服务
./DmServiceDM01 start
./DmWatcherServiceDW01 start
尝试登录
SYSDBA/SYSDBA
13 删除之前归档以及其他日志文件
(达梦的日志都是以实例名作为标识符的,那么新做的库就会与原有的库共用一个日志文件)
cd /data/dmarch
rm *** (最好MV)
14 传输备份到主机并恢复
备机执行:
cd /data/dmdata
scp -r dw_full_bak_20220429 dmdba@0.0.0.0:/data/dmdata/
cd /opt/dmdbms/bin
./dmrman
check backupset '/data/dmbak/dw_full_bak_20220429'
RESTORE DATABASE '/data/dmdata/DW/dm.ini' FROM BACKUPSET '/data/dmbak/dw_full_bak_20220429';
RECOVER DATABASE '/data/dmdata/DW/dm.ini' FROM BACKUPSET '/data/dmbak/dw_full_bak_20220429';
RECOVER DATABASE '/data/dmdata/DW/dm.ini' UPDATE DB_MAGIC;
15 修改数据库状态和密码
主库:
./disql
alter database open;
SP_SET_PARA_VALUE(1,'ALTER_MODE_STATUS',1);
SP_SET_OGUID(....);
ALTER DATABASE PRIMARY;
SP_SET_PARA_VALUE(1,'ALTER_MODE_STATUS',0);
alter user sysdba identified by "****";
备库:
./disql
alter database open;
SP_SET_PARA_VALUE(1,'ALTER_MODE_STATUS',1);
SP_SET_OGUID(....);
ALTER DATABASE STANDBY;
SP_SET_PARA_VALUE(1,'ALTER_MODE_STATUS',0);
alter user sysdba identified by "****";
16 重启数据库
主
./DmServiceDM01 restart
备
./DmServiceDM01 restart
17 恢复修改的参数
cd /data/dmdata/DW_bak0429
vi dmwatcher.ini
DW_MODE = MANUA
改为
DW_MODE = AUTO
18 启动监视器
bin目录下
./DmMonitorServiceMONITOR start
show
19 收集统计信息
达梦技术社区:https://eco.dameng.com