完整版
- 创建临时表空间(非必须)
CREATE TEMPORARY TABLESPACE [临时表空间名称]
TEMPFILE '[路径前缀]/[临时表空间名称]_[编号(如01)].DBF'
SIZE 50M
AUTOEXTEND ON
NEXT 50M MAXSIZE UNLIMITED
EXTENT MANAGEMENT LOCAL;
- 创建数据表空间(非必须)
CREATE TABLESPACE [数据表空间名称]
LOGGING
DATAFILE '[路径前缀]/[数据表空间名称]_[编号(如01)].DBF'
SIZE 50M
AUTOEXTEND ON
NEXT 50M MAXSIZE UNLIMITED
EXTENT MANAGEMENT LOCAL;
TEMPFILE
和DATAFILE
需要根据实际情况创建。-- 查询数据库表空间情况 SELECT T.TABLESPACE_NAME, D.FILE_NAME, D.AUTOEXTENSIBLE, D.BYTES, D.MAXBYTES, D.STATUS FROM DBA_TABLESPACES T, DBA_DATA_FILES D WHERE T.TABLESPACE_NAME = D.TABLESPACE_NAME ORDER BY TABLESPACE_NAME, FILE_NAME;
根据查询出来的
FILE_NAME
字段附加到路径上,作为路径前缀。
- 创建用户并指定表空间
CREATE USER [用户名] IDENTIFIED BY [密码]
DEFAULT TABLESPACE [数据表空间名称]
TEMPORARY TABLESPACE [临时表空间名称];
- 授权
GRANT CONNECT, RESOURCE, DBA TO [用户名];
简版(使用默认表空间)
- 创建用户
CREATE USER [用户名] IDENTIFIED BY [密码];
- 授权
GRANT CONNECT, RESOURCE, DBA TO [用户名];
备份和还原数据库
exp
/imp
方式(需要依赖Oracle客户端)
exp
表示导出,语法:
exp [数据库用户]/[密码]@([ip:端口])[实例名] file=[数据库用户]_[yyyyMMdd].dmp
exp
默认不导出空表,需要手动给表赋予空间之后才能正常导出空表。-- 1、查询空表 select 'alter table '||table_name||' allocate extent;' from user_tables where num_rows=0; -- 2、将以上sql查出来的结果单独执行
imp
表示导入,语法:
imp [数据库用户]/[密码]@([ip:端口])[实例名] file=[数据库用户]_[yyyyMMdd].dmp full=y;