一、备份
a>在数据库里创建临时表备份
1.ORA00905:select * into A from B,缺少关键字,在PLSQL中写了一个语句:select * into A from B,运行时提示:错误00905,缺少关键字
解决方法:那是MS-SQL的写法,ORACLE是 create table b as select * from a
1.用exp和imp备份
windows下:
exp user/password@SID file='C:\20140217.dmp' query='where column=201401' tables=(A,B(无单引号))
linux下:
创建路径:create directory dumpdir as '/home/dumpdata/';在sqlplus下执行;
显示所有的路径:select * from dba_directories;在plsql下执行
删除路径:DROP DIRECTORYdirectory;在sqlplus下执行
更改路径:create or replace directory dumpdir as '/home/dumpfiles';
1.创建目录mkdir,更改linux服务器下目录的读写权限chmod,更改所属的用户,chown.
2.oracle里的命令的用法spool.
3.ls -lh查看文件的大小.
4.
方式一:
dbms_metadata.get_ddl()函数
1)dbms_metadata.get_ddl()包()内的参数都要大写
2)是否查的当前用户的DDL,不是要加上对象的schmea
3)如果信息显示不全,set long 9999(随便设置他的大小,就是为了完全显示查找的结果)
4)注意填写待查询的包名时,删除空格
研究死锁的情况:
第一步,将测试库的文件导入到本地,导出exp,导入时imp,此时注意需要帮助时,可以imp/exp help=y 即可
第二步,可以用下面的视图语句进行查询剩余时间:
SELECT sid, serial#, start_time, sofar, totalwork, time_remaining, message
FROM v$session_longops
WHERE time_remaining > 0
研究表授予权限的情况时:grant select on A(table) to B(user);语句在B里还得加上A表所属的用户名进行查询,即selerct * from A表用户.A;若不想加上这个用户,同义词解决了此类问题,create public synonym table_name for user.table_name,当然有弊端,不再讲述。