Oracle 使用SqlPlus
安装,一键安装,很简单。安装过程,一定要记住密码
连接本地服务器,可以直接,打开cmd:
可以直接不用登陆,如果登陆需要输入用户名、密码。
sqlplus /nolog
也可以,注意斜杠后有空格
sqlplus / as sysdba
连接
conn /as sysdba
sqlplus使用需要帮助时,可以使用:
help index
可以看到如下:
查看用户
show user;
修改密码:
alter user system identified by system;
用户连接
connect system/system;
查询所有的schema
select username from dba_users;
查询用户下所有的表:
select table_name from dba_tables where owner=‘system‘;
三、备份与还原
备份数据库:
exp demo/demo@orcl buffer=1024 file=d:\back.dmp full=y
demo:用户名、密码
buffer: 缓存大小
file: 具体的备份文件地址
full: 是否导出全部文件
ignore: 忽略错误,如果表已经存在,则也是覆盖
将数据库中system用户与sys用户的表导出
exp demo/[email protected] file=d:\backup\1.dmp owner=(system,sys)
导出指定的表
exp demo/[email protected] file=d:\backup2.dmp tables=(teachers,students)
按过滤条件,导出
exp demo/[email protected] file=d:\back.dmp tables=(table1) query=\" where filed1 like ‘fg%‘\"
导出时可以进行压缩:
命令后面 加上 compress=y
还原数据库:
打开cmd直接执行如下命令,不用再登陆sqlplus。
imp demo/demo@orcl file=d:\back.dmp full=y ignore=y
导入指定表:
imp demo/demo@orcl file=d:\backup2.dmp tables=(teachers,students)
四、解决11G后,空表无法导出的问题
11G中有个新特性,当表无数据时,不分配segment,以节省空间。这样在导出数据的时候,空表不被导出
解决方法:
1、insert一行,再rollback就产生segment了。
该方法是在在空表中插入数据,再删除,则产生segment。导出时则可导出空表。
2、设置deferred_segment_creation 参数
该参数值默认是TRUE,当改为FALSE时,无论是空表还是非空表,都分配segment。
需注意的是:该值设置后对以前导入的空表不产生作用,仍不能导出,只能对后面新增的表产生作用。如需导出之前的空表,只能用第一种方法。
需要查询所有的空表,然后执行
select ‘alter table ‘||table_name||‘ allocate extent;‘ from user_tables where num_rows=0
然后再导出即可。
时间: 2024-10-13 17:14:57