基本配置
# 切换至oracle用户
[root@db ~]# su - oracle# 连接,以 DBA 用户身份登录 SQL*Plus
[oracle@db ~]$ sqlplus / as sysdba-- 查看现有表空间名称及存放路径
SELECT file_name,tablespace_name FROM dba_data_files;-- 创建表空间 zf
CREATE TABLESPACE zf
DATAFILE '/u01/oracle/oradata/zf.dbf'
SIZE 100M
AUTOEXTEND ON
NEXT 32M
MAXSIZE 20480M
EXTENT MANAGEMENT LOCAL;-- 创建用户 zf
CREATE USER zf
IDENTIFIED BY zf123
DEFAULT TABLESPACE zf
TEMPORARY TABLESPACE temp
PROFILE DEFAULT
QUOTA UNLIMITED ON zf; -- 在zf表空间上分配无限的存储配额;GRANT DBA TO zf; -- 授予用户 zf DBA 权限
GRANT CONNECT TO zf; -- 允许用户连接到数据库
GRANT RESOURCE TO zf; -- 允许用户创建实体,如表、索引等
GRANT UNLIMITED TABLESPACE TO zf; -- 允许用户在所有表空间中使用无限的空间-- 验证表空间和用户创建成功
SELECT tablespace_name, file_name, file_id, bytes / (1024 * 1024) AS "Size (MB)"
FROM dba_data_files
WHERE tablespace_name = 'ZF';SELECT username, default_tablespace, temporary_tablespace
FROM dba_users
WHERE username = 'ZF';
其他常见操作
-- 查看当前数据库中的所有数据文件信息
select * from dba_data_files;-- 删除表空间 V3XUSER 及其包含的内容和数据文件
DROP TABLESPACE V3XUSER INCLUDING CONTENTS AND DATAFILES;-- 查看当前数据库中的所有用户信息
SELECT * FROM dba_users;-- 删除用户 u1 及其所有的对象
DROP USER u1 CASCADE;
创建目录对象
-- 创建目录对象
CREATE DIRECTORY dump_dir AS '/u01/tomcat/webapps/';-- 授予用户 zf 对目录对象的读写权限
GRANT READ, WRITE ON DIRECTORY dump_dir TO zf;
配置数据源
编辑/u01/tomcat/webapps/zftal-hrm/WEB-INF/classes/subsystem.propertiesdatasource.url=jdbc:oracle:thin:@192.168.228.129:1521/orcl
datasource.username=zf
datasource.password=zf123
导入数据
使用 impdp
导入数据
# 打开终端,切换到具有 DBA 权限的用户
sudo su - oracle# 使用旧版本的导入工具 imp 导入 dmp 文件
imp zf/zf123 file=/u01/tomcat/webapps/hrm_v85.dmp full=y# expdp 重新导出数据用impdp
impdp 'zf/zf123' directory=DUMP_DIR dumpfile=hrm_v85.dmp table_exists_action=replace
Oracle解锁表
第一种解锁方式
1.查询被锁的表
select object_name,machine,s.sid,s.serial#
from v$locked_object l,dba_objects o ,v$session s
where l.object_id = o.object_id and l.session_id=s.sid;
2.查询哪个session引起表被锁
select b.username,b.sid,b.serial#,logon_time
from v$locked_object a,v$session b
where a.session_id = b.sid order by b.logon_time;
select object_name,machine,s.sid,s.serial#
from v$locked_object l,dba_objects o ,v$session s
where l.object_id = o.object_id and l.session_id=s.sid;
3.解锁表
alter system kill session 'sid,serial#';
第二种解锁表的方式
1. 查看被锁的表
SELECT p.spid, a.serial#, c.object_name, b.session_id, b.oracle_username,b.os_user_nameFROM v$process p, v$session a, v$locked_object b, all_objects cWHERE p.addr = a.paddr AND a.process = b.processAND c.object_id = b.object_id;
2.批量解锁
declare cursor mycur is
select b.sid,b.serial# from v$locked_object a,v$session b where a.session_id = b.sid group by b.sid,b.serial#; begin for cur in mycur loop execute immediate ( 'alter system kill session '''||cur.sid || ','|| cur.SERIAL# ||''' '); end loop;
end;