oracle基础语法和备份恢复

Oracle总结

sql命令分类

1.DDL,数据定义语言,create创建/drop销毁

2.DCL,数据库控制语言,grant授权/revoke撤销

3.DML,数据操纵语言,insert/update/delete等sql语句

4.DQL,数据查询语言,select等查询语句

sql基础命令

1.创建用户

复制代码
create user csy identified by csy default tablespace animal;

2.赋予用户权限

复制代码
grant connect,resource,dba to csy;

3.删除用户

复制代码
drop user animal;

4.查看当前所有数据库

复制代码
SELECT * FROM dba_tablespaces;

5.查看用户角色

复制代码
select * from session_privs

6.查看当前用户权限

复制代码
select * from session_privs

7.创建表空间

复制代码
create tablespace animal datafile 'animal.dbf' size 10M;

8.删除表空间

复制代码
drop tablespace animal;

9.修改表空间大小

复制代码
alter tablespace animal datafile 'animal.dbf' size 20M;

10.查询当前用户拥有的所的有表空间

复制代码
select tablespace_name from user_tablespaces;

11.创建表

复制代码
create table dog(name varchar(12),age varchar(12)) tablespace animal;

12.查看animal空间下的所有表

复制代码
select tablespace_name, table_name from user_tables
where tablespace_name = 'ANIMAL';

13.查看表结构

复制代码
desc dog;

14.修改表

复制代码
RENAME dog to cat;

15.删除表

复制代码
drop table dog;

16.插入表数据

复制代码
INSERT INTO dog(name,age) VALUES ('aaa',20);

17.查看表内容

复制代码
select * from dog;

18.修改表内容

复制代码
update dog set name = 'xiaoxiong' where age = 20;

19.追加新的列

复制代码
ALTER TABLE DOG ADD (shengri VARCHAR(12));

20.修改列名

复制代码
alter table dog rename column shengri to date;

21.删除列

复制代码
alter table dog drop column daxiao;

22.删除表内容

复制代码
delete from dog where age = 20;

oracle数据库备份

数据导出

exp命令
复制代码
system是登陆用户,123456是登陆密码,file是存放要导出文件的目录,log是存放导入的日志

owner=test_user 表示导出的表的所属用户是test_user ,full=y表示全部导出


exp system/[email protected]:1521/orcl file=/home/oracle/imp_test.dmp log=/home/oracle/imp_test.log owner=test_user full=y

expdp 命令

复制代码
创建逻辑目录(目录必须存在)

create directory dpdata as '/home/oracle/dump';

按用户导出

expdp system/123456@orcl schemas=scott dumpfile=expdp.dmp DIRECTORY=dpdata;


导出整个数据库

expdp system/123456 DIRECTORY=dpdata DUMPFILE=full.dmp FULL=y;


按表名导出

expdp system/123456@orcl TABLES=emp,dept dumpfile=expdp.dmp DIRECTORY=dpdata;


按查询条件导出
expdp system/123456@orcl directory=dpdata dumpfile=expdp.dmp Tables=emp query='WHERE deptno=20';

数据导入

imp命令

复制代码
system是登陆用户,123456是用户密码,orcl是数据库名称,file是存放要导入文件的目录

imp system/[email protected]:1521/orcl file=/home/oracle/imp_test.dmp full=y

impdp 命令

复制代码
导入到指定用户

impdp scott/tiger DIRECTORY=dpdata DUMPFILE=expdp.dmp SCHEMAS=scott;

导入表空间

impdp system/123456 DIRECTORY=dpdata DUMPFILE=tablespace.dmp TABLESPACES=example;

导入数据库

impdp system/123456 DIRECTORY=dpdata DUMPFILE=full.dmp FULL=y;

rman工具

rman备份

复制代码
创建备份目录

mkdir /home/oracle/dump

查看归档状态

SQL> select name,log_mode from v$database;

NAME	  LOG_MODE
--------- ------------
ORCL	  NOARCHIVELOG  # 表示数据库处于非归档模式


查看数据库状态,确保数据库为关闭状态
rman target /

RMAN> select status from v$instance;


关闭数据库,启动至mount状态
RMAN> shutdown immediate

RMAN> startup mount

执行全库备份
RMAN> backup format '/home/oracle/dump/full_%d_%s_%T_%p.bak' database;

检查备份结果
RMAN> list backup;


恢复至open状态

RMAN> alter database open;

rman恢复

复制代码
找到数据文件的位置
RMAN> select name from v$datafile;


关闭数据库并删除数据文件

RMAN> shutdown immediate

rm -rf /home/oracle/app/oracle/oradata/ORCL/system01.dbf
rm -rf /home/oracle/app/oracle/oradata/ORCL/sysaux01.dbf
rm -rf /home/oracle/app/oracle/oradata/ORCL/undotbs01.dbf
rm -rf /home/oracle/app/oracle/oradata/ORCL/users01.dbf

启动数据库

rman target /

RMAN> startup

还原数据文件
RMAN> restore database;


对数据库进行介质恢复
RMAN> recover database;



打开数据库

RMAN> alter database open;
相关推荐
vivo互联网技术11 分钟前
活动中台系统慢 SQL 治理实践
java·数据库·后端
爱可生开源社区16 分钟前
当测试工具开始「思考」,是工具还是「同事」?
数据库
haven-85239 分钟前
duckdb不支持向量
数据库·oracle
崖山数据库系统YashanDB1 小时前
YashanDB hint语法
数据库
apcipot_rain1 小时前
【数据库原理及安全实验】实验一 数据库安装与创建
数据库·安全
京东零售技术1 小时前
ClickHouse 的“独孤九剑”:极速查询的终极秘籍
数据库
这个懒人1 小时前
MongoDB 核心机制解析
数据库·mongodb·nosql
天上的光2 小时前
数据库原理
数据库
alksql2 小时前
架构思路法
数据库·架构
Lethehong2 小时前
崖山YashanDB:下一代国产分布式数据库的架构革新与行业实践
数据库·分布式·架构