目录
2.创建用户之前要创建"临时表空间",若不创建则默认的临时表空间为temp。
3.现在建好了名为'ZHBG_test '的表空间,下面就可以创建用户了:
一、oracle创建表空间、用户、目录和授权
1.假如现在已经建好名为'oracledb'的数据库
此时在D:\app\Admin\oradata目录下已经存在oracledb目录(注意:我的Oracle11g安装在D盘下,若你的Oracle安装在别的目录,那么你新建的数据库目录就在*:app\Administrator\oradata目录下)。
2.创建用户之前要创建"临时表空间",若不创建则默认的临时表空间为temp。
SQL> create tablespace ZHBG_test datafile 'D:\app\daiydbf\ZHBG_HS.DBF' size 2G;
3.现在建好了名为'ZHBG_test '的表空间,下面就可以创建用户了:
create user ZHDJ_DQ
IDENTIFIED BY ZHDJ_DQ
default tablespace ZHBG_test ;
4.赋予权限
-- Grant/Revoke object privileges
grant execute on SYS.DBMS_PIPE to ZHDJ_DQ;
-- Grant/Revoke role privileges
grant connect to ZHDJ_DQ;
grant resource to ZHDJ_DQ;
grant select_catalog_role to ZHDJ_DQ;
-- Grant/Revoke system privileges
grant create any synonym to ZHDJ_DQ;
grant create any view to ZHDJ_DQ;
grant create database link to ZHDJ_DQ;
grant create job to ZHDJ_DQ;
grant create session to ZHDJ_DQ;
grant execute any procedure to ZHDJ_DQ;
grant execute any program to ZHDJ_DQ;
grant read, write on directory DPDATA1 to ZHDJ_DQ;grant dba to ZHDJ_DQ;
授权成功。 OK! 数据库用户创建完成,现在你就可以使用该用户创建数据表了!(注:DPDATA1 为目录对应的名称,若未创建,需要先创建该目录)
5、创建目录指令:
create directory DPDATA1 as 'D:\app\DMPSPACE';
6、查询目录:
select * from dba_directories;
7、删除目录
drop directory DPDATA1;
8、删除表空间
drop tablespace 表空间名称 including contents and datafiles;
9、删除用户
drop user 用户名称 cascade;
二、oracle数据泵导入导出
1、本地导出语句
expdp ZHDJ_DQ/ZHDJ_DQ directory=DPDATA1 dumpfile=ZHDJ20200811.dmp
2、本地覆盖导入语句
impdp ZHDJ_DQ/ZHDJ_DQ@ORCL directory=DPDATA1 dumpfile=ZHDJ_DQ20200824.dmp table_exists_action=replace
3、不同用户,不同表空间导入dmp
impdp ZHDJ_DQ/ZHDJ_DQ dumpfile=ZHDJ_DQ20200824.DMP directory=DPDATA1 remap_schema=zhbg_hs:ZHDJ_DQ
remap_tablespace=zhbg_hs:ZHDJ_DQ table_exists_action=replace(zhbg_hs:源表空间,源用户名;ZHDJ_DQ现表空间,现用户名)
4、不同用户,相同表空间
impdp ZHDJ_DQ/ZHDJ_DQ dumpfile=ZHDJ20200811.DMP directory=DPDATA1 remap_schema=ZHDJ:ZHDJ_DQ
table_exists_action=replace(ZHDJ:源用户名;ZHDJ_DQ现用户名)
5、远程导出DMP(本地cmd窗口执行即可)
expdp ZHDJ_DQ/nbzzb123@ip地址:1521/jcdjdb directory=DPDATA1 dumpfile=ZHDJ_DQ20200824.dmp
三、ORACLE查看表空间相关指令
1、oracle查看用户和用户所在表空间
select username,default_tablespace from dba_users order by username
2、oracle查看表空间是否自增
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;
3、oracle查看表空间大小和使用情况、剩余大小
SELECT a.tablespace_name "表空间名",
total "表空间大小",
free "表空间剩余大小",
(total - free) "表空间使用大小",
total / (1024 * 1024 * 1024) "表空间大小(G)",
free / (1024 * 1024 * 1024) "表空间剩余大小(G)",
(total - free) / (1024 * 1024 * 1024) "表空间使用大小(G)",
round((total - free) / total, 4) * 100 "使用率 %"
FROM (SELECT tablespace_name, SUM(bytes) free
FROM dba_free_space
GROUP BY tablespace_name) a,
(SELECT tablespace_name, SUM(bytes) total
FROM dba_data_files
GROUP BY tablespace_name) b
WHERE a.tablespace_name = b.tablespace_name
4、设置表空间为自增
alter database datafile 'D:\APP\DAIYDBF\ZHBG_NB.DBF' autoextend on;
执行上方语句2查看表空间是否自增,可以看出我的表空间目前是不自增的
此时,执行语句
alter database datafile 'D:\APP\DAIYDBF\ZHBG_NB.DBF' autoextend on;
再查询,可以看出,该表空间已变为自增
5、PLSQL中查询表结构和字段信息语句
SELECT
t.colUMN_NAME 字段名称,
t.DATA_TYPE || '(' || t.DATA_LENGTH || ')' 数据类型 ,
t1.COMMENTS 字段中文名称
FROM User_Tab_Cols t, User_Col_Comments t1
WHERE t.table_name = t1.table_name
AND t.column_name = t1.column_name AND t.TABLE_NAME ='tableName';
四、oracle设置数据库密码不过期
--查看用户的proifle是哪个,一般是default
SELECT USERNAME,PROFILE FROM DBA_USERS;
--查看指定概要文件(如default)的密码有效期设置
SELECT * FROM DBA_PROFILES S WHERE S.PROFILE='DEFAULT' AND RESOURCE_NAME='PASSWORD_LIFE_TIME';
--将密码有效期由默认的180天修改成'无限制':
ALTER PROFILE DEFAULT LIMIT PASSWORD_LIFE_TIME UNLIMITED;
--修改后,还没有被提示ORA-28002警告的帐户不会再碰到同样的提示;
--已经被提示的帐户必须再改一次密码,举例如下:
-- alter user smsc identified by <原来的密码> ----不用换新密码