DBA常用命令有哪些?

dba常用命令是数据库管理员日常工作中不可或缺的工具,涵盖了数据库的安装配置、用户管理、权限控制、数据操作、性能监控、备份恢复等多个方面,熟练掌握这些命令能够帮助DBA高效、安全地管理数据库系统,确保数据的安全性、完整性和可用性,以下将从不同维度详细介绍DBA常用的命令,并辅以表格说明,最后附上相关问答。

dba常用命令
(图片来源网络,侵删)

用户与权限管理

用户和权限管理是数据库安全的核心,DBA需要通过命令创建用户、分配权限、撤销权限以及修改用户状态。

  1. 创建用户
    在Oracle中,使用CREATE USER命令创建新用户,

    CREATE USER username IDENTIFIED BY password DEFAULT TABLESPACE users TEMPORARY TABLESPACE temp;

    在MySQL中,使用CREATE USER命令:

    CREATE USER 'username'@'localhost' IDENTIFIED BY 'password';
  2. 授予权限
    Oracle中使用GRANT命令,例如授予用户连接和资源权限:

    dba常用命令
    (图片来源网络,侵删)
    GRANT CONNECT, RESOURCE TO username;

    MySQL中授予特定数据库的权限:

    GRANT SELECT, INSERT ON database_name.* TO 'username'@'localhost';
  3. 撤销权限
    使用REVOKE命令撤销已授予的权限,

    REVOKE INSERT ON database_name.* FROM 'username'@'localhost';
  4. 修改用户密码
    Oracle中:

    ALTER USER username IDENTIFIED BY new_password;

    MySQL中:

    dba常用命令
    (图片来源网络,侵删)
    SET PASSWORD FOR 'username'@'localhost' = PASSWORD('new_password');
  5. 锁定/解锁用户
    Oracle中锁定用户:

    ALTER USER ACCOUNT LOCK;

    解锁:

    ALTER USER ACCOUNT UNLOCK;

用户与权限管理常用命令总结
| 数据库类型 | 命令类型 | 示例命令 |
|————|———-|———-|
| Oracle | 创建用户 | CREATE USER username IDENTIFIED BY password; |
| MySQL | 创建用户 | CREATE USER ‘username’@’localhost’ IDENTIFIED BY ‘password’; |
| Oracle | 授权 | GRANT CONNECT, RESOURCE TO username; |
| MySQL | 授权 | GRANT SELECT, INSERT ON database_name.* TO ‘username’@’localhost’; |
| 通用 | 撤销权限 | REVOKE privilege ON object FROM user; |

表空间与数据文件管理

表空间是数据库中存储数据的逻辑结构,DBA需要通过命令管理表空间的创建、扩展、删除以及数据文件的维护。

  1. 创建表空间
    Oracle中:

    CREATE TABLESPACE tablespace_name
    DATAFILE '/path/to/datafile.dbf' SIZE 100M
    AUTOEXTEND ON NEXT 10M MAXSIZE 500M;

    MySQL中(通过InnoDB引擎管理表空间,5.7版本后支持):

    CREATE TABLESPACE tablespace_name ADD DATAFILE '/path/to/tablespace.ibd' ENGINE=InnoDB;
  2. 扩展表空间
    Oracle中可通过ALTER TABLESPACE命令添加数据文件或自动扩展:

    ALTER TABLESPACE tablespace_name ADD DATAFILE '/path/to/new_datafile.dbf' SIZE 50M;

    MySQL中可通过修改数据文件大小或添加新数据文件(需关闭表空间)。

  3. 删除表空间

    DROP TABLESPACE tablespace_name INCLUDING CONTENTS AND DATAFILES;
  4. 查看表空间使用情况
    Oracle中:

    SELECT tablespace_name, ROUND(SUM(bytes)/1024/1024, 2) AS "Size(MB)"
    FROM dba_data_files
    GROUP BY tablespace_name;

    MySQL中:

    SELECT table_name, ROUND(data_length/1024/1024, 2) AS "Size(MB)"
    FROM information_schema.tables
    WHERE table_schema = 'database_name';

备份与恢复

备份与恢复是数据库管理的重中之重,DBA需定期执行备份操作,并在数据损坏时快速恢复。

  1. 冷备份(关闭数据库后备份)
    Oracle中:

    SHUTDOWN IMMEDIATE;
    !cp /u01/app/oracle/oradata/orcl/*.dbf /backup/path/
    STARTUP;
  2. 热备份(RMAN,联机备份)
    Oracle中使用RMAN:

    RMAN> CONNECT target /;
    RMAN> BACKUP DATABASE PLUS ARCHIVELOG;

    MySQL中全量备份:

    mysqldump -u root -p --all-databases > /backup/all_databases.sql
  3. 数据恢复
    Oracle中通过RMAN恢复:

    RMAN> RESTORE DATABASE;
    RMAN> RECOVER DATABASE;

    MySQL中恢复:

    mysql -u root -p < /backup/all_databases.sql

性能监控与调优

DBA需通过命令监控数据库性能,识别瓶颈并进行优化。

  1. 查看当前会话
    Oracle中:

    SELECT sid, serial#, username, program, status FROM v$session;

    MySQL中:

    SELECT id, user, host, db, command, time FROM information_schema.processlist;
  2. 查看等待事件
    Oracle中:

    SELECT event, total_waits, time_waited FROM v$system_event ORDER BY time_waited DESC;
  3. 查看SQL执行计划
    Oracle中:

    EXPLAIN PLAN FOR SELECT * FROM table_name WHERE column = value;
    SELECT * FROM TABLE(DBMS_XPLAN.DISPLAY);

    MySQL中:

    EXPLAIN SELECT * FROM table_name WHERE column = value;
  4. 查看锁信息
    Oracle中:

    SELECT object_name, locked_mode FROM v$locked_object l, dba_objects o WHERE l.object_id = o.object_id;

    MySQL中:

    SELECT * FROM information_schema.innodb_tracked_transactions;

其他常用命令

  1. 数据库启停
    Oracle中:

    STARTUP; -- 启动数据库
    SHUTDOWN IMMEDIATE; -- 关闭数据库

    MySQL中:

    systemctl start mysqld; -- 启动MySQL
    systemctl stop mysqld; -- 停止MySQL
  2. 查看数据库版本
    Oracle中:

    SELECT * FROM v$version;

    MySQL中:

    SELECT VERSION();
  3. 清空表数据

    TRUNCATE TABLE table_name; -- 保留表结构,删除数据
    DELETE FROM table_name; -- 可回滚,逐条删除

相关问答FAQs

Q1: 如何查看Oracle数据库中某个表的存储空间使用情况?
A1: 可以通过查询dba_tablesdba_segments视图获取表的存储信息,

SELECT table_name, ROUND(bytes/1024/1024, 2) AS size_mb 
FROM dba_segments 
WHERE segment_name = 'TABLE_NAME' AND owner = 'SCHEMA_NAME';

也可使用ANALYZE TABLE TABLE_NAME COMPUTE STATISTICS;更新统计信息后查询dba_tablesnum_rowsavg_row_len估算存储空间。

Q2: MySQL数据库中如何忘记root密码后的重置步骤?
A2: 重置MySQL root密码的步骤如下:

  1. 停止MySQL服务:systemctl stop mysqld
  2. 跳过权限表启动MySQL:mysqld_safe --skip-grant-tables &
  3. 无密码登录MySQL:mysql -u root
  4. 执行更新密码命令:
    UPDATE mysql.user SET authentication_string=PASSWORD('new_password') WHERE User='root';
    FLUSH PRIVILEGES;
  5. 重启MySQL服务:systemctl restart mysqld,使用新密码登录。

文章来源网络,作者:运维,如若转载,请注明出处:https://shuyeidc.com/wp/422287.html<

(0)
运维的头像运维
上一篇2025-10-24 20:02
下一篇 2025-10-24 20:06

相关推荐

  • 安卓底层工程师招聘,要求高吗?

    在当今数字化快速发展的时代,安卓系统作为全球市场份额最大的移动操作系统,其底层技术的稳定性和高效性直接关系到用户体验和设备性能,安卓底层工程师作为系统核心技术的守护者与开发者,承担着优化系统性能、解决底层兼容性难题、推动技术创新的重要职责,随着5G、人工智能、物联网等技术的普及,市场对安卓底层工程师的需求持续攀……

    2025-11-20
    0
  • 前端工程师招聘,技能要求如何?

    随着互联网行业的快速发展,网站前端工程师作为连接设计与开发的核心角色,需求持续攀升,企业在招聘前端工程师时,通常需要候选人具备扎实的技术基础、良好的工程化思维以及一定的业务理解能力,以下从岗位职责、任职要求、薪资范围及发展前景等方面,详细解读网站前端工程师的招聘需求,岗位职责网站前端工程师主要负责将UI/UX设……

    2025-11-20
    0
  • 高级前端工程师招聘要求有哪些核心技能?

    高级前端工程师招聘要求通常涵盖技术能力、项目经验、综合素质等多个维度,旨在选拔能够独立负责复杂项目、推动技术落地并具备团队影响力的专业人才,以下从核心技能、项目经验、软实力及其他要求四个方面展开详细说明,在核心技能方面,扎实的编程基础是首要条件,候选人需精通HTML5、CSS3及JavaScript(ES6……

    2025-11-20
    0
  • 公司网站后台维护有哪些关键步骤?

    维护公司网站后台是确保网站稳定运行、数据安全及用户体验优化的核心工作,需要从日常管理、安全防护、内容更新、性能优化等多个维度系统化推进,以下从具体操作层面详细展开维护流程及要点,日常操作与基础维护网站后台的日常维护是保障其正常运行的基础,需建立标准化操作流程,应定期检查后台系统的核心功能模块,包括用户管理、内容……

    2025-11-19
    0
  • 中国移动前端开发招聘有何要求?

    中国移动作为国内领先的通信运营商,其前端开发岗位招聘备受关注,吸引了众多技术人才的目光,在前端开发领域,中国移动的需求主要集中在构建高效、稳定、用户友好的Web应用及移动端界面,支撑其庞大的业务体系和数字化服务,应聘者需要具备扎实的技术基础、良好的编程习惯以及一定的业务理解能力,同时熟悉行业前沿技术趋势,能够快……

    2025-11-19
    0

发表回复

您的邮箱地址不会被公开。必填项已用 * 标注