**
创建数据库及数据库实例管理
**
⚫ 数据库配置助手创建数据库调用 dbca.sh 图形化界面创建数据库:
[dmdba@DCA02 tool]$ ./dbca.sh
2021-01-11 11:43:45 [com.dameng.dbca.Startup] [INFO] 启动 DBCA
指定数据库名称、实例名称(单机情况下数据库和实例名称可以相同),指定端口号:
簇大小、页大小、字符集、字符串大小写敏感、VARCHAR 字符是否为字符为单位,一旦创建将无法更改,除非新创建数据库。
设置系统管理员密码,默认 SYSDBA(用户名大写)
使用 root 执行脚本:
[root@DCA02 桌 面 ]# mv /dm8/bin/DmServiceDMSERVER.service
/usr/lib/systemd/system/DmServiceDMSERVER.service
[root@DCA02 桌面]# systemctl enable DmServiceDMSERVER.service
ln -s ‘/usr/lib/systemd/system/DmServiceDMSERVER.service’ ‘/etc/systemd/system/multi- user.target.wants/DmServiceDMSERVER.service’
[root@DCA02 桌面]# systemctl start DmServiceDMSERVER.service
配置环境变量:
[dmdba@DCA02 ~]$ vi .bash_profile [dmdba@DCA02 ~]$ source .bash_profile [dmdba@DCA02 ~]$ dbca.sh
[2021-01-11 12:00:30 [com.dameng.dbca.Startup] [INFO] 启动 DBCA
2021-01-11 12:01:16 [com.dameng.dbca.Startup] [INFO] 结束 DBCA
bash_profile 文件内容增加PATH 的配置:
dminit 创建数据库实例[dmdba@DCA02 dm8]$ dminit help initdb V8
db version: 0x7000b
file dm.key not found, use default license!
License will expire on 2021-11-06
格式: ./dminit KEYWORD=value
例程: ./dminit PATH=/public/dmdb/dmData PAGE_SIZE=16
关键字 说明(默认值)
INI_FILE 初始化文件dm.ini 存放的路径
PATH 初始数据库存放的路径
CTL_PATH 控制文件路径
LOG_PATH 日志文件路径
EXTENT_SIZE 数据文件使用的簇大小(16),可选值:16, 32, 64,单位:页
[dmdba@DCA02 dm8]$ dminit path=/dm8/data db_name=DM01 instance_name=DMSVR01 port_num=5237
initdb V8
db version: 0x7000b
file dm.key not found, use default license!
License will expire on 2021-11-06
log file path: /dm8/data/DM01/DM0101.log
log file path: /dm8/data/DM01/DM0102.log write to dir [/dm8/data/DM01].
create dm database success. 2021-01-11 14:22:33 [dmdba@DCA02 dm8]$
dminit 注册数据库服务:
[root@DCA02 桌面]# systemctl enable DmServiceDMSVR01.service
ln -s ‘/usr/lib/systemd/system/DmServiceDMSVR01.service’ ‘/etc/systemd/system/multi- user.target.wants/DmServiceDMSVR01.service’
[root@DCA02 桌面]# systemctl start DmServiceDMSVR01.service
命令行注册数据库服务(使用 root 用户执行dm_service_installer.sh): [root@DCA02 桌面]# cd /dm8/script/
[root@DCA02 script]# ll
总用量 4
-rwxr-xr-x. 1 dmdba dinstall 1391 1 月 11 14:16 ckdmstat.sh
drwxr-xr-x. 2 dmdba dinstall 92 1 月 11 14:16 root [root@DCA02 script]# cd root
[root@DCA02 root]# ll
总用量 44
-rwxr-xr-x. 1 dmdba dinstall 26835 1 月 11 14:16 dm_service_installer.sh
-rwxr-xr-x. 1 dmdba dinstall 9501 1 月 11 14:16 dm_service_uninstaller.sh
-rwxr-xr-x. 1 dmdba dinstall 579 1 月 11 14:16 root_installer.sh
[root@DCA02 root]# ./dm_service_installer.sh -t dmserver -p DMSVR01 -dm_ini
/dm8/data/DM01/dm.ini
ln -s ‘/usr/lib/systemd/system/DmServiceDMSVR01.service’ ‘/etc/systemd/system/multi- user.target.wants/DmServiceDMSVR01.service’
创建服务(DmServiceDMSVR01)完成
[dmdba@DCA02 bin]$ ll Dm*
-rwxr-xr-x. 1 dmdba dinstall 13827 1 月 11 14:16 DmAPService
-rwxr-xr-x. 1 dmdba dinstall 14479 1 月 11 14:16 DmAuditMonitorService
-rwxr-xr-x. 1 dmdba dinstall 13655 1 月 11 14:16 DmInstanceMonitorService
-rwxr-xr-x. 1 dmdba dinstall 14126 1 月 11 14:16 DmJobMonitorService
-rwxr-xr-x. 1 dmdba dinstall 16121 1 月 11 14:24 DmServiceDMSERVER
-rwxr-xr-x. 1 dmdba dinstall 16118 1 月 11 14:33 DmServiceDMSVR01
命令行卸载数据库服务(使用 root 用户执行dm_service_uninstaller.sh):
⚫ 连接数据库
[dmdba@DCA02 bin]$ disql sysdba/dameng123
服务器[LOCALHOST:5236]:处于普通打开状态登录使用时间 : 26.836(ms)
disql V8 SQL> exit
[dmdba@DCA02 bin]$ disql sysdba/SYSDBA:5237
服务器[LOCALHOST:5237]:处于普通打开状态登录使用时间 : 3.050(ms)
disql V8 SQL>
出现 SOCKET 连接失败需检查数据库是否正常启动(进程、线程、端口是否正常)或者检查数据库连接数是否达到最大值。
[dmdba@DCA02 bin]$ disql sysdba/SYSDBA@192.168.88.101:5237 [-70028]:创建 SOCKET 连接失败.
disql V8
用户名:^C
其实数据库未启动,启动后连接正常:
[dmdba@DCA02 bin]$ disql sysdba/SYSDBA@192.168.88.102:5237
服务器[192.168.88.102:5237]:处于普通打开状态登录使用时间 : 46.658(ms)
disql V8 SQL> exit
DM 管理工具连接
连接串的配置:
[root@DCA02 桌面]# su - dmdba
上一次登录:一 1 月 11 12:22:00 CST 2021pts/1 上[dmdba@DCA02 ~]$ export DISPLAY=:0 [dmdba@DCA02 ~]$ cd /dm8/tool
[dmdba@DCA02 tool]$ ./nca.sh
⚫ 启动和关闭 DM 数据库
操作系统服务的方式启动:
[root@DCA02 桌 面 ]# systemctl stop DmServiceDMSERVER.service [root@DCA02 桌 面 ]# systemctl start DmServiceDMSERVER.service [root@DCA02 桌面]# systemctl enable DmServiceDMSERVER.service 也可以直接使用 DM 服务查看器
DM 服务查看器要使用 root 用户启动数据库
DM 服务查看器的状态只能识别 systemctl 服务的启动方式,无法识别 dmdba 用户使用命令行方式的启动。
[dmdba@DCA02 bin]$ ./DmServiceDMSERVER status DmServiceDMSERVER (pid 40342) is running. [dmdba@DCA02 bin]$ ./DmServiceDMSERVER stop
Stopping DmServiceDMSERVER: [ OK ] [dmdba@DCA02 bin]$ ./DmServiceDMSERVER status DmServiceDMSERVER is stopped
[dmdba@DCA02 bin]$ ./DmServiceDMSERVER start
Starting DmServiceDMSERVER: [ OK ]
DmService 命令可以将数据库启动到 mount 状态
[dmdba@DCA02 bin]$ ./DmServiceDMSERVER start mount
使用 dmserver 启动(前台启动方式),可以将数据库启动到 mount 状态,输入 exit 或者按 CTRL+C 则会关闭数据库。
[dmdba@DCA02 bin]$ ./dmserver /dm8/data/DAMENG/dm.ini mount file dm.key not found, use default license!
version info: develop
Use normal os_malloc instead of HugeTLB Use normal os_malloc instead of HugeTLB
DM Database Server x64 V8 1-1-144-20.11.06-129436-ENT startup… Database mode = 0, oguid = 0
License will expire on 2021-11-06 file lsn: 47530
ndct db load finished ndct fill fast pool finished nsvr_startup end.
aud sys init success. aud rt sys init success.
systables desc init success. ndct_db_load_info success. SYSTEM IS READY.
exit
Server is stopping…
Sys status is mount, shutdown abort!
dmserver 默认启动数据库到 open 状态:
[dmdba@DCA02 bin]$ ./dmserver /dm8/data/DAMENG/dm.ini
数据库的三个状态:
Mount:配置状态,可以修改数据库配置,打开归档等,不能读取数据文件,可以读内存种的数据(如 v$tablespace),不能提供数据库服务。
Open:打开状态,可以正常读取数据库,对外提供数据服务,不能更改数据库模式。Suspend:挂起状态,此时数据库只读,不能提交数据写文件。
Open 和 mount 可以相互转换:
[dmdba@DCA02 bin]$ ./disql sysdba/dameng123
服务器[LOCALHOST:5236]:处于普通配置状态登录使用时间 : 43.911(ms)
disql V8
SQL> alter database open;
操作已执行
已用时间: 00:00:01.813. 执行号:0.
SQL> select tablespace_name from dba_tablespaces;
行号 TABLESPACE_NAME
1SYSTEM
2ROLL
3TEMP
4MAIN
5DMHR
6HMAIN
6 rows got
mount 状态下不能读数据文件,只能读取内存中的数据。已用时间: 26.747(毫秒). 执行号:401.
SQL> alter database mount;
操作已执行
已用时间: 00:00:01.752. 执行号:0.
SQL> select tablespace_name from dba_tablespaces; select tablespace_name from dba_tablespaces;
第 1 行附近出现错误[-510]:系统处于 MOUNT 状态. 已用时间: 1.539(毫秒). 执行号:0.
SQL> select name from v$tablespace;
行号 NAME
1SYSTEM
2ROLL
3TEMP
4MAIN
5DMHR
已用时间: 0.673(毫秒). 执行号:402.
mount 和 suspend 不能相互切换SQL> alter database suspend; alter database suspend;
第 1 行附近出现错误[-510]:系统处于 MOUNT 状态. 已用时间: 0.319(毫秒). 执行号:0.
SQL> alter database open;
操作已执行
已用时间: 00:00:01.752. 执行号:0.
SQL> alter database suspend;
操作已执行
已用时间: 105.615(毫秒). 执行号:0. SQL> alter database open;
操作已执行
已用时间: 0.367(毫秒). 执行号:0