Oracle常用命令
# 所有操作切换到oracle用户下执行
su - oracle
# 查看oracle进程,测试oracle是否安装成功
ps -aux|grep ora_smon
---------------------------------------------------------
oracle 1750 0.0 0.5 1656832 9836 ? Ss 15:37 0:00 ora_smon_lucifer
oracle 2495 0.0 0.0 112836 980 pts/0 S+ 15:41 0:00 grep --color=auto ora_smon
# 使用sqlplus操作Oracle,管理员登陆
sqlplus / as sysdba
---------------------------------------------------------
SQL*Plus: Release 19.0.0.0.0 - Production on Thu Jan 16 15:53:42 2025
Version 19.3.0.0.0
Copyright (c) 1982, 2019, Oracle. All rights reserved.
Connected to:
Oracle Database 19c Enterprise Edition Release 19.0.0.0.0 - Production
Version 19.3.0.0.0
# 查看日志路径
SQL> select * from v$diag_info;
# 退出
SYS@lucifer SQL> exit
Disconnected from Oracle Database 19c Enterprise Edition Release 19.0.0.0.0 - Production
Version 19.3.0.0.0
# centos7服务器重启后Oracle连接不了
# 当服务器重启之后Oracle其实就已经关闭了所以需要启动,首先启动监听
lsnrctl start
# 然后切换到Oracle用户
su - oracle
# 这个地方视自己的Oracle用户来切换,然后进入sqlplus
sqlplus / as sysdba
# 然后启动数据库
startup
# 关闭Oracle
su - oracle
sqlplus / as sysdba
SHUTDOWN IMMEDIATE;
EXIT;
# SHUTDOWN IMMEDIATE 命令会立即关闭数据库,保证数据的完整性。
lsnrctl stop
# 关闭监听程序
# 用户与登陆
sqlplus / as sysdba
---------------------------------------------------------
# 查看视图
SYS@lucifer SQL> select instance_name from v$instance;
INSTANCE_NAME
----------------
lucifer
# 查参数:
SYS@lucifer SQL> show parameter instance_name;
NAME TYPE VALUE
------------------- ----------- ----------------
instance_name string lucifer
SYS@lucifer SQL> show user;
USER is "SYS"
# sqlplus连接方式
sqlplus username/password@SID
sqlplus username/password@//host:port/SID
# username 是你的 Oracle 数据库用户名。
# password 是该用户的密码。
# SID 是数据库的系统标识符。
# host 是远程数据库所在的主机名或 IP 地址。
# port 是 Oracle 监听端口,通常为 1521。
# 创建新用户
CREATE USER myuser IDENTIFIED BY mypassword;
# 授权新用户登陆权限和资源使用权限
GRANT CONNECT, RESOURCE TO myuser;
# 授予用户 DBA 权限(谨慎使用,因为这会给予用户高权限)
GRANT DBA TO myuser;
# 使用新用户登陆
sqlplus myuser/mypassword
# 案例:
sqlplus / as sysdba
CREATE USER zj IDENTIFIED BY "123.com";
GRANT DBA TO zj;
exit
# 使用新用户本地登陆
sqlplus zj/123.com
# 使用新用户远程登陆
sqlplus zj/123.com@//192.168.8.9:1521/lucifer
## 配置远程登录
步骤 1:配置监听程序
监听程序负责接收来自客户端的连接请求。编辑 listener.ora 文件,该文件通常位于 $ORACLE_HOME/network/admin 目录下。
LISTENER =
(DESCRIPTION_LIST =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = your_server_ip)(PORT = 1521))
)
)
# 将 your_server_ip 替换为服务器的实际 IP 地址。配置完成后,重启监听程序:
lsnrctl stop
lsnrctl start
# 在 Oracle 中,“库” 通常指的是用户或模式(Schema)。你可以使用以下语句查看所有用户:
SELECT username FROM all_users;
# 要查看当前用户的所有表,可以使用以下语句:
SELECT table_name FROM user_tables;
# 要查看所有用户的表,可以使用:
SELECT owner, table_name FROM all_tables;
# 创建表案例:
CREATE TABLE test (
id NUMBER PRIMARY KEY,
name VARCHAR2(100),
age NUMBER,
created_date DATE DEFAULT SYSDATE
);
-----------------------------------------------------
ZJ@lucifer SQL> CREATE TABLE test (
id NUMBER PRIMARY KEY,
name VARCHAR2(100),
age NUMBER,
created_date DATE DEFAULT SYSDATE
);
2 3 4 5 6
Table created.
ZJ@lucifer SQL> select table_name from user_tables;
TABLE_NAME
----------------------------------------------------------------------------------------------------
TEST
ZJ@lucifer SQL> desc test
Name Null? Type
----------------------------------------------------- -------- ------------------------------------
ID NOT NULL NUMBER
NAME VARCHAR2(100)
AGE NUMBER
CREATED_DATE DATE
## 关闭数据库
SHUTDOWN NORMAL(正常关闭):
# 在 SQL*Plus 中以管理员身份登录后执行 SHUTDOWN NORMAL 命令。这种方式下,Oracle 会阻止新的连接,并等待所有当前连接的会话正常结束后才关闭数据库。适用于计划内的数据库维护,能确保所有事务都正常提交或回滚,下次启动时不需要进行任何实例恢复。
SHUTDOWN IMMEDIATE(立即关闭):
# 在 SQL*Plus 中执行 SHUTDOWN IMMEDIATE 命令。会阻止新的连接,立即终止所有当前连接的会话并回滚未提交的事务,然后关闭数据库。适用于需要快速关闭数据库的情况,如紧急维护或系统升级。
SHUTDOWN TRANSACTIONAL(事务性关闭):
# 在 SQL*Plus 中执行 SHUTDOWN TRANSACTIONAL 命令。阻止新的连接和事务,等待所有当前连接的会话中正在进行的事务完成后,以与 SHUTDOWN IMMEDIATE 相同的方式关闭数据库。适用于对数据一致性要求极高且允许等待当前事务完成的场景。
SHUTDOWN ABORT(终止关闭):
# 在 SQL*Plus 中执行 SHUTDOWN ABORT 命令。立即终止所有当前连接的会话,不等待事务的提交或回滚,可能导致未提交的事务丢失,数据文件和控制文件处于不一致状态。下次启动数据库时,Oracle 会自动执行实例恢复操作。一般用于数据库出现严重故障,无法通过正常方式关闭的情况。
## 启动数据库
STARTUP NOMOUNT(非安装启动):
# 在 SQL*Plus 中以管理员身份登录后执行 STARTUP NOMOUNT 命令。读取 init.ora 文件,启动实例,即启动 SGA 和后台进程,但不挂载数据库。常用于只需要访问数据库元数据,或者进行创建数据库、重建控制文件、数据库恢复等操作。
STARTUP MOUNT(安装启动):
# 执行 STARTUP MOUNT 命令。启动实例并装载数据库,可访问数据库的控制文件,但不能访问数据文件。常用于数据库日志归档、数据库介质恢复、使数据文件联机或脱机、重新定位数据文件、重做日志文件等操作。
STARTUP OPEN(打开数据库):
# 执行 STARTUP OPEN 命令,或直接执行 STARTUP 命令,它会先执行 nomount,然后执行 mount,再打开包括 Redo log 文件在内的所有数据库文件,此时可访问数据库中的数据。
STARTUP RESTRICT(约束方式启动):
# 执行 STARTUP RESTRICT 命令。能够启动数据库,但只允许具有 RESTRICTED SESSION 权限的用户访问,常用于对数据库进行维护,如数据的导入 / 导出操作时不希望有其他用户连接到数据库操作数据。
STARTUP FORCE(强制启动方式):
# 执行 STARTUP FORCE 命令,相当于先执行 SHUTDOWN ABORT 关闭数据库,再执行正常启动数据库命令。当不能关闭数据库时,可以用此命令完成数据库的关闭和启动。
STARTUP PFILE = 参数文件名:执行 STARTUP PFILE=参数文件名 命令,先读取指定的参数文件,再按参数文件中的设置启动数据库。