This shows you the differences between two versions of the page.
Both sides previous revision Previous revision Next revision | Previous revision | ||
管理oracle [2019/12/26 04:13] jordan [服务器端备份与还原:使用expdp和impdp进行备份与还原] |
管理oracle [2023/03/08 16:09] (current) xujianglong ↷ Page moved from 内部资料:管理oracle to 管理oracle |
||
---|---|---|---|
Line 1: | Line 1: | ||
- | # 启动与停止Oracle | + | ====== |
- | # Oracle配置 | + | ====== |
- | # Oracle备份与还原 | + | ====== |
- | ## 客户端备份与还原:使用exp与imp进行备份与还原 | + | ===== 客户端备份与还原:使用exp与imp进行备份与还原 |
使用imp和exp前,需要先执行下面的命令设置编码格式 | 使用imp和exp前,需要先执行下面的命令设置编码格式 | ||
- | ```bash | + | < |
export NLS_LANG=AMERICAN_AMERICA.AL32UTF8 | export NLS_LANG=AMERICAN_AMERICA.AL32UTF8 | ||
- | ``` | + | </ |
- | + | < | |
- | ```bash | + | |
exp < | exp < | ||
Line 19: | Line 18: | ||
# | # | ||
imp < | imp < | ||
- | ``` | + | </ |
+ | ===== sqlplus执行sql脚本 ===== | ||
+ | |||
+ | 打开sqlplus,连接后执行'' | ||
- | ## sqlplus执行sql脚本 | + | <code bash> |
- | 打开sqlplus,连接后执行```@<file_name_with_file_path> | + | |
- | ```bash | + | |
sqlplus /nolog | sqlplus /nolog | ||
+ | # 最好在sqlplus中先执行spool < | ||
sql> | sql> | ||
- | ``` | + | </ |
+ | ===== 服务器端备份与还原:使用expdp和impdp进行备份与还原 ===== | ||
- | ## 服务器端备份与还原:使用expdp和impdp进行备份与还原 | + | 参考:[[https:// |
- | 参考:[expdp impdp 数据库导入导出命令详解-石头博客-51CTO博客](https:// | + | < |
- | ```bash | + | |
# 导出 | # 导出 | ||
expdp < | expdp < | ||
# 导入 | # 导入 | ||
impdp < | impdp < | ||
- | ``` | + | </ |
+ | ====== Oracle用户管理 ====== | ||
- | # Oracle用户管理 | + | ===== 新建用户 |
- | ## 新建用户 | + | 参考[[https:// |
- | 参考[How to Create a User and Grant Permissions in Oracle](https:// | + | < |
- | + | ||
- | ```sql | + | |
create user < | create user < | ||
grant connect, resource, dba to < | grant connect, resource, dba to < | ||
- | ``` | + | </ |
- | + | ===== 删除用户 | |
- | ## 删除用户 | + | |
- | ```sql | + | < |
drop user < | drop user < | ||
- | ``` | + | </ |
+ | ====== Oracle表空间管理 ====== | ||
- | # Oracle表空间管理 | + | ===== 新建表空间 |
- | ## 新建表空间 | + | < |
- | + | ||
- | ```sql | + | |
create tablespace < | create tablespace < | ||
- | ``` | + | </ |
+ | ===== 修改表的表空间 ===== | ||
- | # 命令行重启Oracle | + | 详见:[[https:// |
- | ```bash | + | |
+ | <code sql> | ||
+ | ALTER TABLE <TABLE NAME to be moved> MOVE TABLESPACE < | ||
+ | alter index < | ||
+ | </ | ||
+ | ====== | ||
+ | |||
+ | < | ||
su oracle --登录 | su oracle --登录 | ||
sqlplus /nolog --进入SQLPLUS | sqlplus /nolog --进入SQLPLUS | ||
- | ``` | + | </ |
- | + | < | |
- | ```sql | + | |
connect / as sysdba --切换管理员登录 | connect / as sysdba --切换管理员登录 | ||
shutdown --关闭 | shutdown --关闭 | ||
startup | startup | ||
- | ``` | + | </ |
- | + | ====== | |
- | # 数据库对象解锁 | + | |
- | ```sql | + | < |
--数据库对象解锁 | --数据库对象解锁 | ||
SELECT B.Owner, B.Object_Name, | SELECT B.Owner, B.Object_Name, | ||
Line 87: | Line 91: | ||
); | ); | ||
ALTER SYSTEM KILL SESSION '< | ALTER SYSTEM KILL SESSION '< | ||
- | ``` | + | </ |
+ | ====== 删除表、视图、序列等 ====== | ||
- | # 删除表、视图、序列等 | + | < |
- | ```sql | + | |
BEGIN | BEGIN | ||
FOR cur_rec IN (SELECT object_name, | FOR cur_rec IN (SELECT object_name, | ||
Line 130: | Line 134: | ||
END LOOP; | END LOOP; | ||
END; | END; | ||
- | ``` | + | </ |
+ | ====== 解决数据库系统序列值比最大id小导致无法插入数据的问题 ====== | ||
- | # 常见Oracle管理问题 | + | <code sql> |
+ | --解决数据库系统序列值比最大id小导致无法插入数据的问题 | ||
+ | declare | ||
+ | v_rlt number(8): | ||
+ | | ||
+ | << | ||
+ | LOOP | ||
+ | SELECT | ||
+ | dbms_output.put_line(' | ||
+ | exit fst_loop when v_rlt > 5242; | ||
+ | end loop; | ||
+ | dbms_output.put_line(' | ||
+ | | ||
+ | </ | ||
+ | ====== | ||
- | ## 没有任何数据的表格不能导出的解决办法 | + | ===== 没有任何数据的表格不能导出的解决办法 |
自Oracle11g R2开始,插入第一条数据才分配空间,所以没有数据的表默认没有分配空间,使用exp命令无法导出这些表。 | 自Oracle11g R2开始,插入第一条数据才分配空间,所以没有数据的表默认没有分配空间,使用exp命令无法导出这些表。 | ||
- | 解决办法是执行下面的sql得到修改表的空间分配方案的sql命令,再执行这些sql([点击查看更多信息](https:// | + | 解决办法是执行下面的sql得到修改表的空间分配方案的sql命令,再执行这些sql([[https:// |
- | ```sql | + | < |
BEGIN | BEGIN | ||
FOR i IN (SELECT table_name FROM user_tables WHERE segment_created = ' | FOR i IN (SELECT table_name FROM user_tables WHERE segment_created = ' | ||
Line 146: | Line 165: | ||
END LOOP; | END LOOP; | ||
END; | END; | ||
- | ``` | + | </ |