Oracle管理工具介绍

1. SQL Developer 基础简介

Oracle SQL Developer 是一款免费的集成开发环境(IDE),支持数据库开发和管理任务,适用于 DBA 和开发者。

1.1 SQL Developer 常见用途

运行 SQL 查询和 PL/SQL 脚本。 管理数据库用户和权限。 管理数据库对象(表、视图、索引等)。 监控数据库性能。 数据迁移和备份。 数据导入/导出。

2. SQL Developer 安装和配置

下载并安装 SQL Developer:

下载地址:Oracle SQL Developer 下载页面。 https://www.oracle.com/database/sqldeveloper/technologies/download/ 解压安装包,不需要其他安装步骤(只需确保 JDK 已安装)。 连接到数据库:

打开 SQL Developer。 点击左上角 "连接" > "新建连接"。 填写连接信息: 用户名:需要有 DBA 权限的用户(如 SYS、SYSTEM 等)。 密码。 连接类型:选择 Basic 或 TNS。 主机名、端口、服务名:填入数据库实例相关信息。 测试连接后,点击 "连接"。 配置环境:

调整字体、主题、格式化规则(工具 > 首选项 > 外观/代码编辑器)。

配置IP

3. SQL Developer 中的 DBA 日常操作

以下说明了如何在 SQL Developer 中完成 DBA 的常见管理任务。默认前提是你已连接到数据库,并具有 DBA 权限。启用DBA窗口如下图

启用DBA窗口

DBAWINDOW

3.1 用户管理

用户管理是 DBA 的常规任务,包括创建用户、分配权限等。 先介绍如何在DBA窗口中加DBA连接,指向具体的QAS DB

addconnection

addconnectionforqasdb

3.1.1 创建用户

在左侧 "DBA" 视图中,展开 "Security(安全性)" > "Users(用户)"。 右键点击 "Users" > "Create User(创建用户)"。 填写用户信息: 用户名:新用户名称。 密码:设置用户密码。 默认表空间:为用户分配表空间(如 USERS)。 临时表空间:临时存储使用(如 TEMP)。 点击 "OK" 完成。

adduser

CREATE USER my_user IDENTIFIED BY my_password DEFAULT TABLESPACE users TEMPORARY TABLESPACE temp; GRANT CONNECT, RESOURCE TO my_user;

3.1.2 修改用户

在左侧 "DBA" 视图中,展开 "Security" > "Users"。 右键点击目标用户,选择 "Edit User(编辑用户)"。 你可以调整密码、表空间或锁定用户。 命令方式:

ALTER USER my_user IDENTIFIED BY new_password; ALTER USER my_user ACCOUNT LOCK; -- 锁定账户

3.1.3 分配用户权限

权限包括系统权限和对象权限。

在 "DBA" 视图中右键用户,选择 "Grant(授权)"。 系统权限:如 CREATE TABLE、CREATE SESSION。 对象权限:如表的 CRUD 权限。 脚本方式:

GRANT CREATE SESSION, CREATE TABLE TO my_user; -- 授予系统权限 GRANT SELECT, INSERT ON employees TO my_user; -- 授予对象权限

直接分配ROLE, 图形化操作方式如下:

assignrole

如无ROLE直接分配权限, 图形化操作方式如下:

assignauthority

指定表空间,操作如下:

quotato

3.2 表空间管理

表空间是数据库存储的逻辑单位。

3.2.1 创建表空间

在 "DBA" 视图中,展开 "Storage(存储)" > "Tablespaces(表空间)"。 右键 "Tablespaces" > "Create Tablespace"。 配置: 名称:表空间名称。 数据文件路径(文件存放的位置)。 大小策略:固定大小或自动增长。 点击 "OK"。

create-tablespace

命令方式(自动扩展):

CREATE TABLESPACE my_tablespace DATAFILE 'C:\app\oracle\oradata\my_tablespace01.dbf' SIZE 50M AUTOEXTEND ON NEXT 10M MAXSIZE UNLIMITED;

图形化的操作如下:(非自动扩展)

parameter1-tbs

parameter2-tbs

3.2.2 检查表空间状态

在 DBA 工具中展开 "Tablespaces" 可以查看表空间的使用情况和状态。

checkspacesize

在 DBA 工具中展开 "Tablespaces" > "Datafiles",可以查看表空间的使用情况和object。

datafile-usage

datafile-usage2

脚本方式:

SELECT TABLESPACE_NAME, FILE_NAME, BYTES/1024/1024 AS SIZE_MB FROM DBA_DATA_FILES;

3.2.3 修改表空间

修改表空间文件的大小: 右键目标表空间,选择 "Edit(编辑)",然后调整文件大小。 命令方式:

ALTER DATABASE DATAFILE 'C:...\my_tablespace01.dbf' RESIZE 100M; 3.3 性能监控 SQL Developer 提供了内置的工具来帮助监gi控数据库性能。

3.3.1 会话管理

在 “工具”中找到“监视会话” 你可以查看活动会话,查询其运行的 SQL 语句,以及终止阻塞会话。 右键会话,选择 "Kill Session(终止会话)"。图形化操作如下:

sessionmonitor

checksession

endsession

脚本方式:

SELECT SID, SERIAL#, STATUS, USERNAME, MACHINE FROM V$SESSION; ALTER SYSTEM KILL SESSION 'sid,serial#';

3.3.2 性能报告

在探针 "Performance"->快照下,获取实时数据库性能statspack 报告列表:

snapshot01

使用 报告,ASH->AWR, 上次AWR报告可看最近的STATSPACK的内容。

checkstatspackcontent

通过报告,OLAP报告,通过性能系统,可以查看各种情能报告

OLAP-DBA-REPORT

3.4 数据导入和导出 SQL Developer 提供 GUI 工具简化数据传输。

3.4.1 导出数据

导出表: 右键表名 > "Export(导出)"。 选择格式(如 CSV, XML, SQL Insert)。 使用 Data Pump 工具: 连接到数据库,导航至 "DBA" > 数据库 "Data Pump Export & Import(数据泵导出与导入)"。 命令方式(expdp/impdp):

expdp system/password DIRECTORY=dp_dir DUMPFILE=my_data.dmp SCHEMAS=my_schema impdp system/password DIRECTORY=dp_dir DUMPFILE=my_data.dmp SCHEMAS=my_schema

3.5 备份与恢复

3.5.1 使用 Export/Import

确保有设定DATA PUMP 目录,并且在OS上可以打开, 并且权限有给PUBLIC,命令如下: SELECT DIRECTORY_NAME, DIRECTORY_PATH FROM ALL_DIRECTORIES WHERE DIRECTORY_NAME = 'DATA_PUMP_DIR';

确保用户有权限做导出导入,命令如下: SELECT GRANTEE, PRIVILEGE FROM DBA_TAB_PRIVS WHERE TABLE_NAME = 'DATA_PUMP_DIR';

以下代表全部用户都有导出导入权限 GRANTEE PRIVILEGE


PUBLIC READ PUBLIC WRITE

导出所有数据时,右键 "DBA" > "数据泵" > 导出作业。 标准版本不建议启用压缩,不建议带时间戳,要不IMP,会失败。 将数据保存为 .dmp 文件,支持导入恢复。

exp-imp0

exp2

exp3

exp4

exp5

exp6

导出后会生成相应的日志和在表中记录。

导入所有数据时,右键 "DBA" > "数据泵" > 导入作业。 标准版本不建议启用压缩,不建议带时间戳,要不IMP,会失败。 将数据保存为 .dmp 文件,支持导入恢复。

exp-imp0

imp1

imp2

import-log

3.5 DBLINK Setup

在Oracle数据库中,DBLINK(数据库链接)是一种可以用来跨数据库执行查询和操作的工具。作为DBA,使用Oracle SQL Developer创建和管理DBLINK非常简单方便。以下是创建数据库链接的具体指导步骤。

方法一:使用 Oracle SQL Developer 图形界面 SQL Developer 提供了一个直观的 GUI 来创建数据库链接。

打开数据库连接:

启动 SQL Developer 并连接到你的源数据库。 在左侧“Connections”窗口中找到你的数据库连接,右键点击并选择“Connect”。 打开 Database Link 创建窗口:

在 SQL Developer 的工具栏中,点击“数据库名称”旁的 [+] 号展开。 找到 "Database Link" 子目录。 右键点击 "Database Link",选择 "Create Database Link"。 填写 Database Link 信息:

Database Link Name: 填入要创建的链接名称,例如 MY_DBLINK。 Shared/Public(可选): 勾选Public,如果要创建公共链接。 否则,默认是私有DBLINK。 Host/IP: 填写目标数据库的主机地址或IP。 Port Number: 填写目标数据库的监听端口号,默认值是1521。 Service Name / SID: 根据你的目标数据库,填写服务名(Service Name)或 SID。 认证信息:

User Name: 填写目标数据库的用户名。 Password: 填写目标数据库用户的密码。

DBLINK1

dblink2

DBLINK3

测试和完成:

点击 GUI 窗口中的 “Test Connection”(测试连接)按钮,确保数据库连接成功。 测试成功后,点击 “OK” 完成链接创建。

dblink4-test

dblink4-result

方法二:使用 SQL 语句创建 DBLINK 你也可以直接使用 SQL 语句来创建数据库链接。

  1. 创建私有数据库链接 这是为当前用户创建的DBLINK,其它用户无法访问。

CREATE DATABASE LINK MY_DBLINK CONNECT TO TARGET_USER IDENTIFIED BY TARGET_PASSWORD USING '(DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = target_host)(PORT = 1521)) (CONNECT_DATA = (SERVICE_NAME = target_service_name) ) )'; 参数说明: MY_DBLINK: 自定义数据库链接名称。 TARGET_USER: 目标数据库的用户名。 TARGET_PASSWORD: 目标数据库用户的密码。 target_host: 目标数据库的主机地址或IP。 1521: 目标数据库的监听端口。 target_service_name: 目标数据库的服务名,可以通过tnsnames.ora或DBA提供的信息获取。 样例: 假设目标数据库的服务名是 ORCL, 主机名是 192.168.1.100,端口号是 1521,目标用户为 HR,密码为 hrpwd,我们可以使用以下语句:

CREATE DATABASE LINK MY_REMOTE_DB CONNECT TO HR IDENTIFIED BY hrpwd USING '(DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.1.100)(PORT = 1521)) (CONNECT_DATA = (SERVICE_NAME = ORCL) ) )'; 2. 创建公共数据库链接 如果需要创建公共的 DBLINK,供所有用户使用,可以在有 DBA 权限的情况下使用以下命令:

CREATE PUBLIC DATABASE LINK MY_PUBLIC_DBLINK CONNECT TO TARGET_USER IDENTIFIED BY TARGET_PASSWORD USING '(DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = target_host)(PORT = 1521)) (CONNECT_DATA = (SERVICE_NAME = target_service_name) ) )'; 三、验证 DBLINK 创建好数据库链接后,可以通过以下语句验证是否创建成功并测试链接的可用性:

查找已创建的数据库链接: 查看当前用户可用的数据库链接:

SELECT * FROM USER_DB_LINKS; 查看所有的数据库链接(需要DBA权限):

SELECT * FROM DBA_DB_LINKS; 测试 DBLINK: 使用创建的 DBLINK 登录远程数据库并运行查询:

SELECT * FROM dual@MY_DBLINK; 如果运行成功,则表示链接可用。

四、删除 DBLINK 如果你需要删除一个数据库链接,可以通过以下命令完成:

删除私有数据库链接:

DROP DATABASE LINK MY_DBLINK; 删除公共数据库链接(需要 DBA 权限):

DROP PUBLIC DATABASE LINK MY_PUBLIC_DBLINK;