Oracle 12c 数据库常见操作
阅读原文时间:2021年05月04日阅读:1

? 简介

本文主要记录 Oracle 12c 日常的一些常见操作。包括以下内容:

  1. 基本操作

  2. 配置监听

  3. 设置开机自启动

  4. 创建数据库对象

  5. 基本操作

1) 连接数据库

[[email protected] ~]$ sqlplus / as sysdba #不加引号

# 如果连接出现以下:

  1. 检查 .bash_profile 文件中的数据库名是否正确;

  2. 检查数据库是否启动;

2) 查看当前用户

SQL> show user;

USER is "SYS"

3) 查看日志路径

SQL> select * from v$diag_info;

1 Diag Trace

/opt/oracle/app/oracle/diag/rdbms/devzxsm/devzxsm/trace

[[email protected] ~]$ ls -lsa /opt/oracle/app/oracle/diag/rdbms/devzxsm/devzxsm/trace/al*

56 -rw-r-----. 1 oracle dba 54469 8月 26 21:18 /opt/oracle/app/oracle/diag/rdbms/devzxsm/devzxsm/trace/alert_devzxsm.log #日志警告文件(主要关注 ORA 开头的报错信息)

4) 查看数据文件

SQL> select name from v$datafile;

/opt/oracle/app/oracle/oradata/devzxsm/system01.dbf

/opt/oracle/app/oracle/oradata/devzxsm/sysaux01.dbf

/opt/oracle/app/oracle/oradata/devzxsm/undotbs01.dbf

/opt/oracle/app/oracle/oradata/devzxsm/users01.dbf

5) 启动数据库

[[email protected] ~]$ sqlplus "/as sysdba" #加引号

SQL> startup; #启动

SQL> exit;

[[email protected] ~]$ lsnrctl start #开启监听

[[email protected] ~]$ lsnrctl status #查看监听状态

6) 关闭数据库

SQL> shutdown immediate; #需要一定时间

SQL> exit;

[[email protected] ~]$ lsnrctl stop #停止监听

  1. 检查/配置监听

cd $ORACLE_HOME/network/admin

vi tnsnames.ora #编辑配置文件

#ping 监听(成功返回OK)

tnsping devzxsm

  1. 设置开机自启动

1) 修改 dbstart、dbshut 脚本,否则启动和停止 Oracle 数据库时会提示以下信息:

ORACLE_HOME_LISTNER is not SET, unable to auto-stop Oracle Net Listener

su - oracle #切换为 oracle 用户

修改 dbstart 脚本,将 ORACLE_HOME_LISTNER=$1 的$1改为 $ORACLE_HOME

cp $ORACLE_HOME/bin/dbstart $ORACLE_HOME/bin/dbstart.bak_20083001

vi $ORACLE_HOME/bin/dbstart

再修改 dbshut 脚本,将 ORACLE_HOME_LISTNER=$1 的$1改为 $ORACLE_HOME

cp $ORACLE_HOME/bin/dbshut $ORACLE_HOME/bin/dbshut.bak_20083001

vi $ORACLE_HOME/bin/dbshut

2) 编辑 /etc/oratab 文件

# vi /etc/oratab #将最后一位 N 改为 Y

3) 创建用于启动和停止 oracle 的脚本

su - root #切换为 oracle 用户

vi /etc/init.d/dbora #添加以下内容:

#! /bin/sh

# description: Oracle auto start-stop script.

#

# Set ORA_HOME to be equivalent to the $ORACLE_HOME

# from which you wish to execute dbstart and dbshut;

#

# Set ORA_OWNER to the user id of the owner of the

# Oracle database in ORACLE_HOME.

ORA_HOME=/opt/oracle/app/oracle/product/12.2.0/dbhome_1 #注意:这里为实际的 oracle 安装路径

ORA_OWNER=oracle

case "$1" in

‘start‘)

# Start the Oracle databases:

# The following command assumes that the oracle login

# will not prompt the user for any values

# Remove "&" if you don‘t want startup as a background process.

su - $ORA_OWNER -c "$ORA_HOME/bin/dbstart $ORA_HOME" &

touch /var/lock/subsys/dbora

;;

‘stop‘)

# Stop the Oracle databases:

# The following command assumes that the oracle login

# will not prompt the user for any values

su - $ORA_OWNER -c "$ORA_HOME/bin/dbshut $ORA_HOME" &

rm -f /var/lock/subsys/dbora

;;

esac

4) 修改脚本执行权限

chown oracle /etc/init.d/dbora #将所有者改为 oracle 用户

chmod 750 /etc/init.d/dbora #只有 oracle 用户和 root 组具备执行权限

5) 设置开机自启动

创建软链接文件,到三个运行级别的服务目录下:

ln -s /etc/init.d/dbora /etc/rc.d/rc0.d/K01dbora

ln -s /etc/init.d/dbora /etc/rc.d/rc3.d/S99dbora

ln -s /etc/init.d/dbora /etc/rc.d/rc5.d/S99dbora

说明:软件连接文件不用考虑权限,类似 Windows 中的快捷方式,已源文件为准。

# 检查创建结果

ll /etc/rc.d/rc0.d /etc/rc.d/rc3.d /etc/rc.d/rc5.d | grep ora

说明:启动和日志可以分别在以下两个文件中查看:

tail -100 /opt/oracle/app/oracle/product/12.2.0/dbhome_1/startup.log

tail -100 /opt/oracle/app/oracle/product/12.2.0/dbhome_1/shutdown.log

  1. 创建数据库对象

1) 查看当前实例名

SQL> show parameter instance_name;

instance_name string devzxsm

2) 查看当前用户

SQL> show user

USER is "SYS"

3) 创建表空间

create tablespace zxsm01 datafile ‘/opt/oracle/app/oracle/oradata/devzxsm/zxsm01.dbf‘ size 128m;

4) 创建用户(data)

create user data identified by data123 default tablespace zxsm01;

grant dba to data; #不建议直接授权dba

5) 切换用户登录

SQL> conn data/[email protected];

SQL> show user;

USER is "DATA"

SQL> conn / as sysdba;

SQL> show user;

USER is "SYS"

6) 写入测试数据

[[email protected] admin]$ sqlplus "data/[email protected]"

SQL> create table table01(id number(2) primary key, name varchar2(100));

SQL> insert into table01 values(1, ‘你想咋咋‘);

SQL> commit;

SQL> select * from table01;

手机扫一扫

移动阅读更方便

阿里云服务器
腾讯云服务器
七牛云服务器

你可能感兴趣的文章