oracle日常操作命令手册(启停篇)-从零到无
--时间:2020年8月24日
--作者:飞翔的小胖猪
手工目录:
#############################################################
一、启动关闭数据库
1.1 启动10g、11g、12c非容器数据库。
1.1.1 手动启动数据
1.1.2 rhel6自动启动数据库
1.1.3 rhel7自动启动数据库
1.2 启动容器数据库
1.2.1 切换PDB
1.2.2 PDB切换到CDB
1.2.3 pdb连接字符串
1.3 RAC启停
#############################################################
一、启动关闭数据库
10g,11g数据库只需要进入到不同的实例中执行一个命令即可。对于创建有容器数据库的12c及以上的版本需要启动容器数据库。
1.1 启动10g、11g、12c非容器数据库。
在windos下数据库安装过后,oracle数据库会跟随系统自启动。在linux下需要手动设置oracle启动。在6下可以使用自定义脚本的模式也可以使用oracle自带的dbstart命令执行。
1.1.1 手动启动数据
[root@12c ~]# su - oracle #切换到oracle用户下
[oracle@12c ~]$ rlwrap sqlplus / as sysdba #进入到sqlplus控制台
SQL> startup #启动数据库
SQL> select name,open_mode from v$database; #查看数据库状态
1.1.2 rhel6自动启动数据库
在rhel6的操作系统中可以把数据库启动脚本做成服务加入到开启启动项中,设置随主机启动。
1.复制开机启动脚本
[root@wyzc ~]# cp /etc/init.d/network oracle //拷贝一个模板用来定义oracle开机启动
定义系统启动脚本:
[root@wyzc ~]# vim /etc/init.d/oracle
#! /bin/bash
#
# ORACLE up/down ORACLE
#
# chkconfig: 2345 90 1
# description: Activates/Deactivates all network interfaces configured to \
# Source function library.
. /etc/init.d/functions
case "$1" in
start)
su - oracle -c "/home/oracle/start11g"
;;
stop)
su - oracle -c "/home/oracle/shutdown11g"
;;
*)
echo $"Usage: $0 {start|stop}"
exit 2
esac
exit $rc
2.关闭数据库脚本
[oracle@wyzc ~]$ cat shutdown11g //11g关闭数据库,同时停止监听端口
#!/bin/bash
sqlplus / as sysdba <<EOF
shutdown immediate
EOF
lsnrctl stop;
3.启动数据库脚本
[oracle@wyzc ~]$ cat start11g //打开数据监听端口,启动数据库
#!/bin/bash
lsnrctl start;
sqlplus / as sysdba <<EOF
startup
EOF
1.2 启动容器数据库
默认情况下在12C的CDB中执行SQL>startup;并不能把PDB启动至OPEN状态,只到MOUNT状态
[root@12c ~]# su - oracle #切换到oracle用户下
[oracle@12c ~]$ rlwrap sqlplus / as sysdba #进入到sqlplus控制台
SQL> startup #启动数据库实例
SQL> select name,open_mode from v$database; #查看数据库实例状态
SQL> col name for a20 #设置name列的显示长度为20个字符
SQL> select con_id,name,open_mode from v$pdbs; #查看确认pdbs状态
发现CDB状态正常,PDB处于mountd状态。
SQL> select con_id,name,open_mode from v$pdbs; #查看确认pdb状态
SQL> alter pluggable database LVANPDB open; #启动插入式数据库
SQL> select con_id,name,open_mode from v$pdbs; #查看确认pdb状态
1.2.1 切换PDB
在安装有容器数据库的12C及以上版本的数据库管理时时常需要切换到CDB和PDB中进行操作。
1.CDB切换到PDB中,sys用户
[root@12c ~]# su - oracle #切换到oracle用户
[oracle@12c ~]$ rlwrap sqlplus / as sysdba #进入到sqlplus控制台
SQL> show pdbs; #查看pdbs名称
SQL> alter session set container=LVANPDB; #切换到pdb中,用户为sys
SQL> show con_name; #查看容器名称
SQL> show con_id; #查看容器ID
SQL> ALTER PLUGGABLE DATABASE OPEN READ ONLY FORCE; #切换到只读状态
SQL> ALTER PLUGGABLE DATABASE CLOSE IMMEDIATE; #关闭数据库
同时也可以通过切换到pdb实例后再进行启动停止操作。
[root@12c ~]# su - oracle #切换到oracle用户
[oracle@12c ~]$ rlwrap sqlplus / as sysdba #进入sqlplus控制台
SQL> startup #启动数据库
SQL> col name for a25; #格式化字符
SQL> select con_id,name,open_mode from v$pdbs; #查看pdb名及状态
SQL> alter session set container=lvanpdb; #切换到pdb中
SQL> startup #在pdb中启动数据库
SQL> select name,open_mode from v$database; #确认pdb数据库状态
1.2.2 PDB切换到CDB
SQL> show con_name; #查看当前容器名字
SQL> show user; #查看当前用户
SQL> alter session set container=CDB$ROOT; #切换CDB中
SQL> show con_name; #查看当前容器名字
SQL> show user; #查看当前用户
1.2.3 pdb连接字符串
[root@12c ~]# su - oracle #切换到oracle用户,因为oracle下有sqlplus工具命令
[oracle@12c ~]$ rlwrap sqlplus lvan/yinwan@192.168.111.3:1521/lvanpdb #使用lvan用户登录pdb数据库
SQL> show user; #查看当前用户名
SQL> show con_name; #查看当前容器名
1.3 RAC启停
#查看数据库名
[grid@18crac1 ~]$ srvctl config database
#启动数据库
[grid@18crac1 ~]$ srvctl start database -d orcl
#查看数据库实例启动情况
[grid@18crac1 ~]$ crsctl stat res -t |grep -iA5 ora.orcl.db
#停止数据库
[grid@18crac1 ~]$ srvctl stop database -d orcl
[grid@18crac1 ~]$ crsctl stat res -t |grep -iA5 ora.orcl.db
#启动数据库到mount阶段
[grid@18crac1 ~]$ srvctl start instance -d orcl -i orcl1 -o mount
[grid@18crac1 ~]$ crsctl stat res -t |grep -iA5 ora.orcl.db