Oracle数据导入导出常规命令整理
最近在工作中涉及到对Oracle数据库进行备份、导入、改表等命令操作,现归纳总结出来供日后参阅。
?
?
1、--创建表空间并赋予表空间大小
create tablespace yutengspacelogging datafile 'F:\oracle\product\10.2.0\oradata\yuteng\yuteng.dbf' size 54m autoextend on next 54m maxsize 2048m extent management local;
?
2、导入dmp数据文件,重复导入时需删除用户再创建用户再导入,否则会报数据索引错误。因为imp命令执行的是insert操作。
sqlplus system/root@eb @createUser.sql imp neweb/root@eb file="f:\169dbbak\new_eb_db_bak\newEB_2011-06-10_.dmp" ignore=y frmuser=neweb tables(a,b,c)--ignore=y 表示忽略创建错误,继续后面的操作--full( 全库导出): 导出除ORDSYS,MDSYS,CTXSYS,ORDPLUGINS,LBACSYS 这些系统用户之外的所有用户的数据.createUser.sql内容如下(主要实现删用户,建用户):--把system和root改为具有sysdba权限的用户名和密码(如sys用户) conn system/root@eb as sysdba --删除原neweb 用户 DROP USER neweb CASCADE / --创建用户neweb 密码为 root 并分配表空间和临时表空间(如果需要自定义表空间,则需提前建表空间,命令见第1条)CREATE USER neweb IDENTIFIED BY "root" default tablespace users temporary tablespace temp/ --给neweb 用户DBA权限 GRANT DBA TO neweb / --用neweb 用户连接数据库 CONN neweb/root@eb commit;exit;
?
?
3、数据库导出命令
@echo off@echo ================================================@echo windows环境下Oracle数据库的自动备份脚本@echo 说明:启动备份时,需要配置以下变量@echo 1、BACKUP_DIR 指定要备份到哪个目录@echo 2、ORACLE_USERNAME 指定备份所用的Oracle用户名@echo 3、ORACLE_PASSWORD 指定备份所用的Oracle密码@echo 4、ORACLE_DB 指定备份所用的Oracle连接名@echo 5、BACK_OPTION 备份选项,可以为空,可以为full=y,可以为owner=a用户,b用户 等等....@echo 6、RAR_CMD 指定RAR命令行压缩工具所在目录@echo ================================================ set BACKUP_DIR=E:\SERVER-U\new_eb_db_bakset ORACLE_USERNAME=newebset ORACLE_PASSWORD=rootset ORACLE_DB=newEBset BACK_OPTION=owner=newebfor /f "tokens=1,2" %%a in ('date/t') do set TODAY=%%aset BACK_NAME=%ORACLE_DB%_%TODAY%_set BACK_FULL_NAME=%BACKUP_DIR%\%BACK_NAME%exp %ORACLE_USERNAME%/%ORACLE_PASSWORD%@%ORACLE_DB% %BACK_OPTION% file="%BACK_FULL_NAME%.dmp" log="%BACK_FULL_NAME%exp.log"
?
?
4、修改原字段名
ALTER TABLE product_dc RENAME COLUMN description TO description_temp;
?
?
5、添加一个和原字段同名的字段
ALTER TABLE product_dc ADD description clob;
?
6、将原来的数据更新到新字段中这是要注意,一定要显示进行数据类型转换(不同于MSSQL)
UPDATE product_dc SET description = CAST(description_temp AS VARCHAR2(4000));
?
7、删除原来的备份字段
ALTER TABLE product_dc DROP COLUMN description_temp;
?
?
?
都是一些常规命令,主要是记录一下方便以后查阅。^_^