操作数据库实例
创建数据库
dminit 命令行创建数据库实例
dminit 是 DM 初始化数据库的命令行工具,位于 DM 安装目录 bin 下。
sh
# dmdba
cd /dm8/bin
./dminit help
./dminit path=/dm8/data db_name=DMTEST instance_NAME=DMTESTSVR sysdba_pwd=Dameng123 port_num=5238 PAGE_SIZE=16dminit 方式创建数据库不会自动注册数据库服务(DM 数据库配置助手方式默认自动注册数 据库服务),所以不能以服务方式启动数据库,如果要以服务方式启动,则需要注册数据库 服务。
root 执行注册服务脚本
sh
# root
# cd $DM_HOME/script/root
cd /dm8/script/root
./dm_service_installer.sh -t dmserver -p DMTESTSVR -dm_ini /dm8/data/DMTEST/dm.iniroot 执行删除服务脚本
sh
# root
# cd $DM_HOME/script/root
cd /dm8/script/root
./dm_service_uninstaller.sh -h
./dm_service_uninstaller.sh -n DmServiceDMTESTSVR
/dm8/script/root/dm_service_uninstaller.sh -n DmServiceDMTESTSVR连接数据库
如果使用客户端工具连接远端数据库服务器,需要开放数据库服务器防火墙对应端口(开放 端口后需 reload):
sh
# root
firewall-cmd --add-port=5236/tcp --permanent --zone=public
firewall-cmd --reload
firewall-cmd --list-ports
# 或者直接关闭数据库服务器的防火墙
systemctl status firewalld
systemctl stop firewallddisql 命令行方式连接数据库
sh
# dmdba
cd /dm8/bin
./disql sysdba/Dameng123:5238
# sysdba 用户名
# Dameng123 密码
# 5236 端口sql
select name from V$database;
select instance_name from v$instance;
# 退出
exit启动和关闭数据库
DM 数据库启动顺序
DM 数据库启动顺序:读取配置参数文件 dm.ini,找到控制文件 dm.ctl,启动后台进程和线程,启动数据库实例,启动到 mount 状态,根据控制文件中的数据文件路径和联机日志文件路径,找到并打开数据文件和联机日志,启动到 OPEN 状态。
- DM:shutdown ->mount->open
- Oracle 启动顺序:shutdown -> nomount->mount->open
- Shutdown:关闭状态
- Mount:配置状态,此时可以修改数据库归档配置、主机备机等模式,不能进行数据文件的读写。此时数据库不能对外正常提供服务。可以读取内存中或者控制文件中的表(V$开头的动态视图)。
- MOUNT 状态下,可以配置归档,设置主备模式,修改联机日志文件路径等,MOUNT 状态下不能读写数据(但可以读动态性能视图中的数据,因为动态视图数据来源于控制文件或内存中的,比如 v$datafile、v$database 等),MOUNT 状态数据库不能对外提供服务(不能读写数据,业务中断)。
- Open:打开状态,此时数据库提供正常的服务。可以读写数据文件。正常访问表,读取数据。
- Suspend:只读状态,只能读,不能写(DML 操作一旦 commit,数据库即会被挂起)。
- MOUNT 和 OPEN 可以相互转换(与 Oracle 不同)。SUSPEND 和 OPEN 也可以相互转换。但 MOUNT 和 SUSPEND 之间不能相互转换。
sql
select status$ from v$instance;
alter database mount;
select status$ from v$instance;
alter database open;
select status$ from v$instance;
alter database suspend;
select * from t_test;
insert into t_test(id) values(4);
select name, status$ from v$instance;
select name, status$ from v$database;
select path from v$datafile;DM 数据库启动
- root 用户启动
sh
# root
# systemctl 服务方式管理(CentOS6 使用 service 命令)
# systemctl start|restart|status|stop|enable|disable DmServiceDMTESTSVR
systemctl start DmServiceDMTESTSVR
systemctl status DmServiceDMTESTSVR- dmdba 用户启动
- (1) 前台启动方式(dmserver):如果没有注册数据库服务为 Linux 系统服务,则只能使用此方式启动。其他的启动方式都需 要注册数据库服务。
- 启动:
cd /dm8/bin && ./dmserver /dm8/data/DMTEST/dm.ini - 启动到 MOUNT 状态:
cd /dm8/bin && ./dmserver /dm8/data/DMTEST/dm.ini mount
- 启动:
- (2) 后台启动方式(DmServiceDMSERVER)
- 查看服务:
ll /dm8/bin/Dm* cd /dm8/bin && ./DmServiceDMTESTSVR startcd /dm8/bin && ./DmServiceDMTESTSVR stop- 启动到 MOUNT 状态:
cd /dm8/bin && ./DmServiceDMTESTSVR start mount cd /dm8/bin && ./DmServiceDMTESTSVR statuscd /dm8/bin && ./DmServiceDMTESTSVR restart
- 查看服务:
- (1) 前台启动方式(dmserver):如果没有注册数据库服务为 Linux 系统服务,则只能使用此方式启动。其他的启动方式都需 要注册数据库服务。