达梦主从部署1主2从(主库需要停机)
环境:
OS:Centos 7
DB:DM8
主库:192.168.1.134 dbname:slnngk instance_name:slnngk01
备库1:192.168.1.135 dbname:slnngk instance_name:slnngk02
备库2:192.168.1.85 dbname:slnngk instance_name:slnngk03
说明:
主库上安装数据库软件和启动数据库,主库在归档模式
备库库上只安装了数据库软件
主备库的数据目录一致
目录规划(主备一致):
/dmdbms/product ##数据库软件的安装目录
/dmdbms/data ##数据目录
/dmdbms/arch ##归档目录
/dmdbms/backup ##备份目录
#############################主库安装数据192.168.1.134################################
1.初始化数据库
su - dmdba
dminit path=/dmdbms/data charset=1 db_name=slnngk instance_name=slnngk01 SYSDBA_PWD="dameng123" SYSAUDITOR_PWD="dameng123"
2.注册服务
我们这里三个数据库使用的服务名都统一使用:DmServiceslnngk
su - root
[root@localhost root]#cd /dmdbms/product/script/root
[root@localhost root]# ./dm_service_installer.sh -t dmserver -dm_ini /dmdbms/data/slnngk/dm.ini -p slnngk
Created symlink from /etc/systemd/system/multi-user.target.wants/DmServiceslnngk.service to /usr/lib/systemd/system/DmServiceslnngk.service.
Finished to create the service (DmServiceslnngk)
3.启动数据库
[root@localhost root]#systemctl start DmServiceslnngk.service
[root@localhost root]#systemctl status DmServiceslnngk.service
4.配置归档模式
su - dmdba
disql sysdba/dameng123
alter database mount;
alter database add archivelog 'dest=/dmdbms/arch,TYPE=local,FILE_SIZE=2048';
alter database archivelog;
alter database open;
查看是否在归档模式
SQL> select name,arch_mode from v$database;
LINEID NAME ARCH_MODE
---------- ------ ---------
1 slnngk Y
used time: 1.347(ms). Execute id is 55201.
#############################备库安装数据192.168.1.135################################
1.初始化数据库,注意实例名与前面的不一样
su - dmdba
dminit path=/dmdbms/data charset=1 db_name=slnngk instance_name=slnngk02 SYSDBA_PWD="dameng123" SYSAUDITOR_PWD="dameng123"
2.注册服务
我们这里三个数据库使用的服务名都统一使用:DmServiceslnngk
su - root
[root@localhost root]#cd /dmdbms/product/script/root
[root@localhost root]# ./dm_service_installer.sh -t dmserver -dm_ini /dmdbms/data/slnngk/dm.ini -p slnngk
Created symlink from /etc/systemd/system/multi-user.target.wants/DmServiceslnngk.service to /usr/lib/systemd/system/DmServiceslnngk.service.
Finished to create the service (DmServiceslnngk)
3.启动数据库
[root@localhost root]#systemctl start DmServiceslnngk.service
[root@localhost root]#systemctl status DmServiceslnngk.service
这里尝试下是否可以启动数据库
然后将其停掉,因为下面我们会使用主库的备份文件进行恢复的
[root@host135 root]# systemctl stop DmServiceslnngk.service
#############################备库安装数据192.168.1.85################################
1.初始化数据库,注意实例名与前面的不一样
su - dmdba
dminit path=/dmdbms/data charset=1 db_name=slnngk instance_name=slnngk03 SYSDBA_PWD="dameng123" SYSAUDITOR_PWD="dameng123"
2.注册服务
我们这里三个数据库使用的服务名都统一使用:DmServiceslnngk
su - root
[root@localhost root]#cd /dmdbms/product/script/root
[root@localhost root]# ./dm_service_installer.sh -t dmserver -dm_ini /dmdbms/data/slnngk/dm.ini -p slnngk
Created symlink from /etc/systemd/system/multi-user.target.wants/DmServiceslnngk.service to /usr/lib/systemd/system/DmServiceslnngk.service.
Finished to create the service (DmServiceslnngk)
3.启动数据库
[root@localhost root]#systemctl start DmServiceslnngk.service
[root@localhost root]#systemctl status DmServiceslnngk.service
这里尝试下是否可以启动数据库
然后将其停掉,因为下面我们会使用主库的备份文件进行恢复的
[root@host85 root]# systemctl stop DmServiceslnngk.service
#############################主备数据恢复################################
1.关闭主库,以 dmrman 备份数据库
[root@host134 data]# systemctl stop DmServiceslnngk.service
或是登陆到disql,shutdown数据库
[dmdba@localhost ~]$ disql sysdba/dameng123
SQL> shutdown immediate;
2.使用dmrman备份主库
只有数据库是在关闭状态才能使用dmrman备份
[root@localhost dmdbms]# su - dmdba
[dmdba@localhost ~]$ dmrman
dmrman V8
RMAN> backup database '/dmdbms/data/slnngk/dm.ini' backupset '/dmdbms/backup';
backup database '/dmdbms/data/slnngk/dm.ini' backupset '/dmdbms/backup';
Database mode = 0, oguid = 0
Normal of FAST
Normal of DEFAULT
Normal of RECYCLE
Normal of KEEP
Normal of ROLL
EP[0]'s cur_lsn[41034], file_lsn[41034]
Processing backupset /dmdbms/backup
[Percent:100.00%][Speed:0.00M/s][Cost:00:00:02][Remaining:00:00:00]
backup successfully!
time used: 00:00:04.126
RMAN>
3.将备份文件复制到另外两台备库对应目录下(如果是root用户,复制成功需要将备份文件设置属于dmdba:dinstall用户组)
我这里是使用dmdba账号进行scp传输的
su - dmdba
scp -r /dmdbms/backup/* dmdba@192.168.1.135:/dmdbms/backup/
scp -r /dmdbms/backup/* dmdba@192.168.1.85:/dmdbms/backup/
这里dmdba账号的密码设置为:dameng123
4.备库使用dmrman执行数据库还原
这个时候备库是没有启动的,
疑惑备库原来初始化的数据目录下的文件是否可以删除掉?
备库1:192.168.1.135
若备库是启动的状态,需要将其关闭掉
[root@localhost ~]#systemctl stop DmServiceslnngk.service
[root@localhost ~]# su - dmdba
[dmdba@localhost ~]$ dmrman
dmrman V8
按顺序执行3个命令:
restore database '/dmdbms/data/slnngk/dm.ini' from backupset '/dmdbms/backup';
recover database '/dmdbms/data/slnngk/dm.ini' from backupset '/dmdbms/backup';
recover database '/dmdbms/data/slnngk/dm.ini' update db_magic;
备库2:192.168.1.85
[root@localhost ~]#systemctl stop DmServiceslnngk.service
[root@localhost ~]# su - dmdba
[dmdba@localhost ~]$ dmrman
dmrman V8
按顺序执行3个命令:
restore database '/dmdbms/data/slnngk/dm.ini' from backupset '/dmdbms/backup';
recover database '/dmdbms/data/slnngk/dm.ini' from backupset '/dmdbms/backup';
recover database '/dmdbms/data/slnngk/dm.ini' update db_magic;
#############################配置文件设置################################
1.dm.ini
#三个实例主备库实例都需更改下面参数
su - dmdba
vi /dmdbms/data/slnngk/dm.ini
ALTER_MODE_STATUS = 0 ##不允许手工方式修改实例模式/状态/OGUID
ENABLE_OFFLINE_TS = 2 ##不允许备库 OFFLINE 表空间
MAL_INI = 1 ##打开 MAL 系统
ARCH_INI = 1 ##打开归档配置
ALTER_TABLE_OPT=3 ##加快带默认值的字段添加(看情况需要)
2.主备配置文件dmmal.ini
#三个实例主备库配置必须完全一致
su - dmdba
vi /dmdbms/data/slnngk/dmmal.ini
MAL_CHECK_INTERVAL = 5 #MAL 链路检测时间间隔
MAL_CONN_FAIL_INTERVAL = 5 #判定 MAL 链路断开的时间
[MAL_INST1]
MAL_INST_NAME = SLNNGK01 #实例名,和 dm.ini 中的 INSTANCE_NAME 一致
MAL_HOST = 192.168.1.134 #MAL 系统监听 TCP 连接的 IP 地址
MAL_PORT = 61141 #MAL 系统监听 TCP 连接的端口
MAL_INST_HOST = 192.168.1.134 #实例的对外服务 IP 地址
MAL_INST_PORT = 5236 #实例的对外服务端口,dm.ini 中的 PORT_NUM 一致
MAL_DW_PORT = 52141 #实例对应的守护进程监听 TCP 连接的端口
MAL_INST_DW_PORT = 33141 #实例监听守护进程 TCP 连接的端口
[MAL_INST2]
MAL_INST_NAME = SLNNGK02
MAL_HOST = 192.168.1.135
MAL_PORT = 61141
MAL_INST_HOST = 192.168.1.135
MAL_INST_PORT = 5236
MAL_DW_PORT = 52141
MAL_INST_DW_PORT = 33141
[MAL_INST3]
MAL_INST_NAME = SLNNGK03
MAL_HOST = 192.168.1.85
MAL_PORT = 61141
MAL_INST_HOST = 192.168.1.85
MAL_INST_PORT = 5236
MAL_DW_PORT = 52141
MAL_INST_DW_PORT = 33141
在主库(192.168.1.134)上配置好了,可以scp到另外两个备库
su - dmdba
scp /dmdbms/data/slnngk/dmmal.ini dmdba@192.168.1.135:/dmdbms/data/slnngk/
scp /dmdbms/data/slnngk/dmmal.ini dmdba@192.168.1.85:/dmdbms/data/slnngk/
3.归档配置文件dmarch.ini
192.168.1.134主库
若主库上已经配置了本地归档的,那么只需要添加ARCHIVE_REALTIME部分
su - dmdba
vi /dmdbms/data/slnngk/dmarch.ini
[ARCHIVE_REALTIME1]
ARCH_TYPE = REALTIME #实时归档类型
ARCH_DEST = SLNNGK02 #实时归档目标实例名,这里是备库的实例名
[ARCHIVE_REALTIME2]
ARCH_TYPE = REALTIME #实时归档类型
ARCH_DEST = SLNNGK03 #实时归档目标实例名,这里是备库的实例名
[ARCHIVE_LOCAL1]
ARCH_TYPE = LOCAL #本地归档类型
ARCH_DEST = /dmdbms/arch #本地归档文件存放路径
ARCH_FILE_SIZE = 2024 #单位Mb,本地单个归档文件最大值
ARCH_SPACE_LIMIT = 0 #单位Mb,0 表示无限制,范围 1024~4294967294M
ARCH_FLUSH_BUF_SIZE = 0
ARCH_HANG_FLAG = 1
192.168.1.135备库
su - dmdba
vi /dmdbms/data/slnngk/dmarch.ini
[ARCHIVE_REALTIME1]
ARCH_TYPE = REALTIME #实时归档类型
ARCH_DEST = SLNNGK01 #实时归档目标实例名,这里是备库的实例名
[ARCHIVE_REALTIME2]
ARCH_TYPE = REALTIME #实时归档类型
ARCH_DEST = SLNNGK03 #实时归档目标实例名,这里是备库的实例名
[ARCHIVE_LOCAL1]
ARCH_TYPE = LOCAL #本地归档类型
ARCH_DEST = /dmdbms/arch #本地归档文件存放路径
ARCH_FILE_SIZE = 2024 #单位Mb,本地单个归档文件最大值
ARCH_SPACE_LIMIT = 0 #单位Mb,0 表示无限制,范围 1024~4294967294M
ARCH_FLUSH_BUF_SIZE = 0
ARCH_HANG_FLAG = 1
192.168.1.85备库
su - dmdba
vi /dmdbms/data/slnngk/dmarch.ini
[ARCHIVE_REALTIME1]
ARCH_TYPE = REALTIME #实时归档类型
ARCH_DEST = SLNNGK01 #实时归档目标实例名,这里是备库的实例名
[ARCHIVE_REALTIME2]
ARCH_TYPE = REALTIME #实时归档类型
ARCH_DEST = SLNNGK02 #实时归档目标实例名,这里是备库的实例名
[ARCHIVE_LOCAL1]
ARCH_TYPE = LOCAL #本地归档类型
ARCH_DEST = /dmdbms/arch #本地归档文件存放路径
ARCH_FILE_SIZE = 2024 #单位Mb,本地单个归档文件最大值
ARCH_SPACE_LIMIT = 0 #单位Mb,0 表示无限制,范围 1024~4294967294M
ARCH_FLUSH_BUF_SIZE = 0
ARCH_HANG_FLAG = 1
这里配置的归档日志三个节点基本是一致的,只是实时归档配置为对方2个节点
4.配置dmwatcher.ini
三个实例主备库配置一致
su - dmdba
vi /dmdbms/data/slnngk/dmwatcher.ini
[GRP1]
DW_TYPE = GLOBAL ##全局守护类型
DW_MODE = AUTO ##手工切换 AUTO自动切换模式必须部署一个确认监视器,在集群中每个节点必须配置一致,不能一个是自动,一个是手动
DW_ERROR_TIME = 10 ##远程守护进程故障认定时间
INST_RECOVER_TIME = 60 ##主库守护进程启动恢复的间隔时间
INST_ERROR_TIME = 10 ##本地实例故障认定时间
INST_OGUID = 453332 ##守护系统唯一 OGUID 值
INST_INI = /dmdbms/data/slnngk/dm.ini #dm.ini配置文件路径
INST_AUTO_RESTART = 1 ##打开实例的自动启动功能,若配置为0的话,数据库shutdown后,dmwatch守护进程不会把数据库拉起来
INST_STARTUP_CMD = /dmdbms/product/bin/dmserver #命令行方式启动
RLOG_SEND_THRESHOLD = 0 ##指定主库发送日志到备库的时间阀值,默认关闭
RLOG_APPLY_THRESHOLD = 0 ##指定备库重演日志的时间阀值,默认关闭
在主库(192.168.1.134)上配置好了,可以scp到另外两个备库
su - dmdba
scp /dmdbms/data/slnngk/dmwatcher.ini dmdba@192.168.1.135:/dmdbms/data/slnngk/
scp /dmdbms/data/slnngk/dmwatcher.ini dmdba@192.168.1.85:/dmdbms/data/slnngk/
5.监视器配置文件
#生产环境如果是自动切换需单独一台服务器配置监视器(该机器只安装AP即可),我这里放在主库(192.168.1.134)上面
su - dmdba
vi /dmdbms/data/slnngk/dmmonitor.ini
MON_DW_Confirm = 1 ## 0表示普通监视器 ,最多配置8个,1 确认监视器模式
MON_LOG_PATH = /dmdbms/log ##监视器日志文件存放路径
MON_LOG_INTERVAL = 60 ##每隔 60s 定时记录系统信息到日志文件
MON_LOG_FILE_SIZE = 256 ##每个日志文件最大 256M
MON_LOG_SPACE_LIMIT = 0 ##不限定日志文件总占用空间
[GRP1]
MON_INST_OGUID = 453332 #组 GRP1 的唯一OGUID 值
##配置为监视器到组GRP1的守护进程的连接信息以―IP:PORT‖的形式配置
##IP对应dmmal.ini中的 MAL_HOST,PORT 对应 dmmal.ini 中的 MAL_DW_PORT
MON_DW_IP = 192.168.1.134:52141
MON_DW_IP = 192.168.1.135:52141
MON_DW_IP = 192.168.1.85:52141
注意这里需要创建日志文件
su - dmdba
mkdir -p /dmdbms/log
#############################每个实例注册守护进程################################
主库:192.168.1.134
su - root
[root@host134 root]# cd /dmdbms/product/script/root
[root@host134 slnngk]#./dm_service_installer.sh -t dmwatcher -p GRP1 -watcher_ini /dmdbms/data/slnngk/dmwatcher.ini
备库1:192.168.1.135
su - root
[root@host135 root]# cd /dmdbms/product/script/root
[root@host135 slnngk]#./dm_service_installer.sh -t dmwatcher -p GRP1 -watcher_ini /dmdbms/data/slnngk/dmwatcher.ini
备库2:192.168.1.85
su - root
[root@host85 root]# cd /dmdbms/product/script/root
[root@host85 slnngk]#./dm_service_installer.sh -t dmwatcher -p GRP1 -watcher_ini /dmdbms/data/slnngk/dmwatcher.ini
这里可以查看刚才注册的服务名
[root@host134 system]# ls -al /usr/lib/systemd/system/Dm*
#############################实例注册监听器服务################################
这里只需要在监听服务器上执行,我这里只在192.168.1.134上执行
su - root
[root@host134 root]# cd /dmdbms/product/script/root
[root@localhost ~]# ./dm_service_installer.sh -t dmmonitor -p Monitor -monitor_ini /dmdbms/data/slnngk/dmmonitor.ini
#############################配置同步################################
1.启动三个实例,主备库都启动
这里不能使用系统服务(systemctl)启动数据库,该方式启动的状态是open模式,会破坏主从关系,使用后台命令的方式启动
192.168.1.134
su - dmdba
[dmdba@host134 log]$ cd ~
[dmdba@host134 ~]$nohup dmserver /dmdbms/data/slnngk/dm.ini mount>dmserver.log &
192.168.1.135
su - dmdba
[dmdba@host135 log]$ cd ~
[dmdba@host135 ~]$nohup dmserver /dmdbms/data/slnngk/dm.ini mount>dmserver.log &
192.168.1.85
su - dmdba
[dmdba@host85 log]$ cd ~
[dmdba@host85 ~]$nohup dmserver /dmdbms/data/slnngk/dm.ini mount>dmserver.log &
2.配置主从
这个时候每个实例都启动到mount状态的,可以查询检查下
192.168.1.134
disql sysdba/dameng123
SQL> select status$,mode$ from v$instance;
LINEID STATUS$ MODE$
---------- ------- ------
1 MOUNT NORMAL
192.168.1.135
disql sysdba/dameng123
SQL> select status$,mode$ from v$instance;
LINEID STATUS$ MODE$
---------- ------- ------
1 MOUNT NORMAL
used time: 5.125(ms). Execute id is 0.
192.168.1.85
disql sysdba/dameng123
SQL> select status$,mode$ from v$instance;
LINEID STATUS$ MODE$
---------- ------- ------
1 MOUNT NORMAL
used time: 5.392(ms). Execute id is 0.
下面进行主备库的配置
A.主库192.168.1.134
disql sysdba/dameng123
SQL>sp_set_oguid(453332);
SQL>alter database primary;
B.备库192.168.1.135
disql sysdba/dameng123
SQL>sp_set_oguid(453332);
SQL>alter database standby;
B.备库192.168.1.85
disql sysdba/dameng123
SQL>sp_set_oguid(453332);
SQL>alter database standby;
这个时候主备库三个实例额度状态都是mount状态的,下面需要启动dmwatcher,把实例状态拉起来
SQL> select status$ from v$instance;
LINEID STATUS$
---------- -------
1 MOUNT
used time: 0.891(ms). Execute id is 601.
3.启动dmwatcher
每个实例都启动(root账号)
192.168.1.134
[root@host134 dmdba]#systemctl start DmWatcherServiceGRP1
192.168.1.135
[root@host135 dmdba]#systemctl start DmWatcherServiceGRP1
192.168.1.85
[root@host85 dmdba]#systemctl start DmWatcherServiceGRP1
这个时候查看每个实例的状态:
主库192.168.1.134
su - dmdba
disql sysdba/dameng123
SQL> select status$,mode$ from v$instance;
LINEID STATUS$ MODE$
---------- ------- -------
1 OPEN PRIMARY
used time: 0.787(ms). Execute id is 3.
备库192.168.1.135
SQL> select status$,mode$ from v$instance;
Server[LOCALHOST:5236]:mode is standby, state is open
connected
LINEID STATUS$ MODE$
---------- ------- -------
1 OPEN STANDBY
used time: 2.098(ms). Execute id is 100.
备库192.168.1.85
SQL> select status$,mode$ from v$instance;
Server[LOCALHOST:5236]:mode is standby, state is open
connected
LINEID STATUS$ MODE$
---------- ------- -------
1 OPEN STANDBY
used time: 1.735(ms). Execute id is 100.
3.启动监视器进程
我们的监视器是配置在主库上面的,192.168.1.134
[root@host134 root]# systemctl start DmMonitorServiceMonitor
疑问:数据库服务(systemctl)什么时候启动呢,备库可以停掉之前进程后启动,但是主库不想切换的时候如何启动
systemctl status DmServiceslnngk.service
############################数据验证###################################################
1.主库上创建表空间和用户
创建表空间
su - dmdba
disql sysdba/dameng123
create tablespace tps_hxl datafile '/dmdbms/data/slnngk/tps_hxl01.DBF' size 1024 autoextend on maxsize 32768; ##这里单位是M,文件目录存储在/dmdata/dmdb/DAMENG,这里设置文件最大值,不设置的话就是16TB
create user hxl identified by dameng123 default tablespace tps_hxl default index tablespace tps_hxl;
grant dba to hxl;
2.从库查看表空间和用户
SQL> select tablespace_name from SYS.DBA_TABLESPACES;
LINEID TABLESPACE_NAME
---------- ---------------
1 SYSTEM
2 ROLL
3 TEMP
4 MAIN
5 TPS_HXL
6 MAIN
6 rows got
SQL> select username from SYS.DBA_USERS;
LINEID USERNAME
---------- ----------
1 SYSAUDITOR
2 HXL
3 SYSSSO
4 SYSDBA
5 SYS
used time: 25.592(ms). Execute id is 102.
3.主库创建表写入数据
disql hxl/dameng123
create table tb_test(id number,name varchar(32));
insert into tb_test values(1,'name1');
insert into tb_test values(2,'name2');
insert into tb_test values(3,'name3');
insert into tb_test values(4,'name4');
insert into tb_test values(5,'name5');
insert into tb_test values(6,'name6');
insert into tb_test values(7,'name7');
insert into tb_test values(8,'name8');
insert into tb_test values(9,'name9');
insert into tb_test values(10,'name10');
commit;
从库查询
disql hxl/dameng123
SQL> select * from tb_test;
LINEID ID NAME
---------- -- ------
1 1 name1
2 2 name2
3 3 name3
4 4 name4
5 5 name5
6 6 name6
7 7 name7
8 8 name8
9 9 name9
10 10 name10
10 rows got
###########################监视器监控相关############################
在监视器上执行如下命令,我这里是在192.168.1.134机器上执行
1.登陆监视器模式
[dmdba@host134 ~]$ dmmonitor /dmdbms/data/slnngk/dmmonitor.ini
Exist multiple CONFIRM dmmonitor, can only startup one!
这里提示只能配置一个确认监视器,我们拷贝下一份dmmonitor.ini,将MON_DW_Confirm修改为0,改成普通监视器
[dmdba@host134 ~]$ cp /dmdbms/data/slnngk/dmmonitor.ini /dmdbms/data/slnngk/dmmonitor0.ini
vi /dmdbms/data/slnngk/dmmonitor0.ini
如下项修改为0
MON_DW_Confirm = 0 ## 0表示普通监视器 ,最多配置8个,1 确认监视器模式
[dmdba@host134 ~]$dmmonitor /dmdbms/data/slnngk/dmmonitor0.ini
[monitor] 2022-08-10 11:05:41: DMMONITOR[4.0] V8
[monitor] 2022-08-10 11:05:41: DMMONITOR[4.0] IS READY.
[monitor] 2022-08-10 11:05:42: Received message from(SLNNGK01)
WTIME WSTATUS INST_OK INAME ISTATUS IMODE RSTAT N_OPEN FLSN CLSN
2022-08-10 11:05:41 OPEN OK SLNNGK01 OPEN PRIMARY VALID 3 40157 40158
[monitor] 2022-08-10 11:05:42: Received message from(SLNNGK02)
WTIME WSTATUS INST_OK INAME ISTATUS IMODE RSTAT N_OPEN FLSN CLSN
2022-08-10 11:05:41 OPEN OK SLNNGK02 OPEN STANDBY VALID 3 40157 40157
[monitor] 2022-08-10 11:05:42: Received message from(SLNNGK03)
WTIME WSTATUS INST_OK INAME ISTATUS IMODE RSTAT N_OPEN FLSN CLSN
2022-08-10 11:05:51 OPEN OK SLNNGK03 OPEN STANDBY VALID 3 40157 40157
2.查看可切换的节点
show
2022-08-10 11:07:17
#================================================================================#
GROUP OGUID MON_CONFIRM MODE MPP_FLAG
GRP1 453332 FALSE AUTO FALSE
choose switchover GRP1
Can choose one of the following instances to do switchover:
1: SLNNGK02
2: SLNNGK03
这里列出了实例2和实例3是可以切换的
###########################应用程序连接############################
这里我在其中一台从库上连接,这里是在192.168.1.85机器上连接
1.通过服务名连接,只连接备库
[root@host85 root]# more /etc/dm_svc.conf
TIME_ZONE=(480)
LANGUAGE=(en)
MYDMDB=(192.168.1.134:5236,192.168.1.135:5236,192.168.1.85:5236)
LOGIN_MODE=(2) ##只连接备库
SWITCH_TIMES=(3) ##以服务名连接库时,若未找到符合条件的库建立连接,将尝试遍历服务名中库列表的次数
SWITCH_INTERVAL=(100) ##在服务器之间切换的时间间隔,单位为毫秒
通过服务名连接(大小写都可以)
disql sysdba/dameng123@MYDMDB
disql sysdba/dameng123@mydmdb
SQL> select name,status$,mode$ from v$instance;
LINEID NAME STATUS$ MODE$
---------- -------- ------- -------
1 SLNNGK03 OPEN STANDBY
used time: 3.227(ms). Execute id is 101.
2.通过服务名连接,只连接主库
[root@host85 root]# more /etc/dm_svc.conf
TIME_ZONE=(480)
LANGUAGE=(en)
MYDMDB=(192.168.1.134:5236,192.168.1.135:5236,192.168.1.85:5236)
LOGIN_MODE=(1) ##只连接备库
SWITCH_TIMES=(3) ##以服务名连接库时,若未找到符合条件的库建立连接,将尝试遍历服务名中库列表的次数
SWITCH_INTERVAL=(100) ##在服务器之间切换的时间间隔,单位为毫秒
[dmdba@host85 slnngk]$ disql sysdba/dameng123@MYDMDB
Server[192.168.1.134:5236]:mode is primary, state is open
login used time : 9.862(ms)
disql V8
SQL> select name,status$,mode$ from v$instance;
LINEID NAME STATUS$ MODE$
---------- -------- ------- -------
1 SLNNGK01 OPEN PRIMARY
used time: 3.770(ms). Execute id is 1000.
连接方式说明:
LOGIN_MODE:指定优先登录的服务器模式.
0:优先连接 PRIMARY 模式的库,NORMAL模式次之,最后选择STANTBY模式;
1:只连接主库;
2:只连接备库;
3:优先连接STANDBY 模式的库, PRIMARY 模式次之,最后选择NORMAL模式;
4:优先连接NORMAL 模式的库,PRIMARY 模式次之,最后选择STANDBY模式;
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步