DBA成长之路(ORACLE)
数据文件 数据文件用来存储数据库中的全部数据,如数据库表中的数据和索引数据。通常 为后缀名为.dbf 格式的文件; 一个数据库实例可以包含多个数据文件,一个数据 文件只能存储一个表空间。(添加网卡:devcon.exe install %windir%\inf\netloop.inf *msloop ) 日志文件 日志文件,用于记录数据库所做的全部变更(如增加、删除、修改),以便在系统 发生故障时,用它对数据库进行恢复。名字通常为 Log*.dbf 格式 ### DBA成长之路(ORACLE) #### 数据文件 数据文件是Oracle数据库中极其重要的组成部分,它们主要用于存储数据库的所有数据,包括表数据以及索引数据。这些文件通常具有.dbf的扩展名。每个数据库实例可以包含多个数据文件,但是每一个数据文件只能属于一个表空间。 - **特点**: - 每个数据文件都对应于一个表空间。 - 数据文件一旦创建,就不能被重新分配给另一个表空间。 - 数据文件可以扩展,即可以通过添加新的数据文件或扩大现有数据文件的大小来扩展表空间。 - 数据文件是操作系统级别的文件,因此在文件系统层面可见。 - **管理**: - 使用SQL语句或企业管理器进行管理。 - 可以通过`ALTER DATABASE ADD DATAFILE`命令添加新的数据文件到表空间。 - 扩大数据文件的大小可以通过`ALTER DATABASE RESIZE DATAFILE`命令实现。 - **示例**: - 创建一个新的数据文件并将其添加到指定的表空间中: ```sql ALTER DATABASE ADD DATAFILE '/u01/app/oracle/oradata/mydb/newfile.dbf' SIZE 100M TABLESPACE users; ``` #### 日志文件 日志文件是Oracle数据库中的另一重要组件,它们主要用于记录所有事务性操作(如插入、更新、删除等)。这有助于在系统发生故障时能够恢复数据库到一个一致的状态。日志文件的名字通常遵循Log*.dbf的命名规则。 - **作用**: - 记录事务操作,以便进行故障恢复。 - 支持事务的原子性和持久性。 - 提供了闪回功能的基础,使数据库能够回到过去某个时间点的状态。 - **管理**: - 日志文件由Oracle自动管理,但DBA需要确保有足够的磁盘空间来存储日志文件。 - 可以通过`ALTER DATABASE ADD LOGFILE`命令添加新的日志文件组。 - 可以使用`ALTER DATABASE CLEAR LOGFILE GROUP n`命令清除日志文件组。 - **示例**: - 添加一个新的日志文件组: ```sql ALTER DATABASE ADD LOGFILE GROUP 2 ('/u01/app/oracle/oradata/mydb/redo02a.log') SIZE 25M; ``` #### ORACLE9i与10g数据库之间的主要区别 1. **内存占用**: - Oracle 10g相比9i,在内存管理和使用上进行了优化,导致10g版本在某些情况下可能消耗更多的内存资源。 2. **管理习惯的变化**: - Oracle 10g引入了许多自动化管理特性,例如自动内存管理(Automatic Memory Management, AMM)和自动共享内存管理(Automatic Shared Memory Management, ASMM),使得数据库管理员的工作更加高效。 3. **闪回恢复区**: - 10g版本引入了一个专门的闪回恢复区域,用于存储归档日志和控制文件的备份。这不仅提高了安全性,也简化了闪回操作的过程。 - **查看闪回区大小**: - 可以使用`SHOW PARAMETER db_recovery_file_dest_size;`命令来查看当前设置的闪回区大小。 - **修改闪回区大小**: - 可以通过调整`db_recovery_file_dest_size`参数的值来修改闪回区的大小。 - 示例命令: ```sql ALTER SYSTEM SET db_recovery_file_dest_size=5G SCOPE=BOTH; ``` - **删除闪回区的归档日志**: - 删除闪回区内的归档日志可以通过`DELETE FROM V$ARCHIVED_LOG`命令完成。 4. **闪回举例**: - Oracle 10g提供了多种闪回技术,如闪回查询、闪回表、闪回数据库等。 - 例如,使用`SELECT * FROM TABLE AS OF TIMESTAMP TO_TIMESTAMP('2023-03-01 12:00:00', 'YYYY-MM-DD HH24:MI:SS');`可以查询某个时间点的数据。 #### ORACLE内置程序介绍和使用方法 Oracle数据库提供了多个内置后台进程,这些进程对于维持数据库的正常运行至关重要。 1. **SMON(System Monitor)**: - 负责清理失败的事务,并合并空闲的空间块。 - 在数据库启动过程中执行一致性检查。 2. **PMON(Process Monitor)**: - 监控所有用户进程和服务进程,当进程异常终止时负责清理该进程。 3. **DBWR(Database Writer)**: - 负责将脏缓冲区的数据写入到数据文件中。 4. **LGWR(Log Writer)**: - 将重做日志缓冲区中的内容写入到重做日志文件中。 5. **ARCH(Archiver)**: - 当数据库处于归档模式时,将已满的日志文件归档到指定的位置。 6. **RECO(Recovery)**: - 处理分布式事务,确保所有参与节点的一致性。 7. **LCKn(Lock)**: - 为表和行提供锁定机制,防止并发访问冲突。 8. **服务进程**: - 每个用户会话都会有一个服务进程与之关联,负责执行用户的SQL请求。 #### ORACLE数据库的恢复与备份 数据库的备份和恢复是维护数据库稳定性和可用性的关键环节。 1. **备份种类**: - **完全备份**:备份整个数据库。 - **增量备份**:只备份自上次备份以来发生变化的数据。 - **归档备份**:备份已经归档的日志文件。 2. **恢复的种类**: - **完整恢复**:将数据库恢复到最新的状态。 - **不完全恢复**:将数据库恢复到指定的时间点。 #### 命令 1. **更改日期格式**: - 可以使用`ALTER SESSION SET NLS_DATE_FORMAT = 'DD-MON-YY';`来更改会话的日期格式。 2. **显示服务器配置文件**: - 使用`SHOW PARAMETER file_name;`命令查看当前数据库使用的参数文件名称。 3. **修改表**: - 可以使用`ALTER TABLE table_name ADD column_name datatype;`命令来添加新列。 4. **修改表空间数据文件**: - 使用`ALTER DATABASE DATAFILE '/path/to/file.dbf' RESIZE new_size;`来调整数据文件的大小。 5. **数据库创建**: - 创建一个新的数据库可以通过`CREATE DATABASE database_name USING TEMPLATE template_name;`命令完成。 #### 视图相关操作 1. **查询方案具有的视图**: - 使用`SELECT * FROM all_views WHERE owner = 'SCHEMA_NAME';`命令可以列出特定模式下的所有视图。 #### 数据库资源解锁 1. **查看锁**: - 使用`SELECT * FROM v$lock;`命令查看当前数据库中的锁情况。 2. **解除锁**: - 通过`ALTER SYSTEM KILL SESSION 'sid,serial#';`命令可以强制杀死持有锁的会话。 #### 控制文件备份步骤 1. **关闭数据库**: - 使用`SHUTDOWN IMMEDIATE;`命令立即关闭数据库。 2. **复制控制文件**: - 复制控制文件到安全的位置。 3. **修改参数文件**: - 修改`control_files`参数以指向新的控制文件位置。 4. **重启数据库**: - 使用`STARTUP;`命令重启数据库。 #### ORACLE常用函数 1. **字符函数** - **ASCII**:返回字符的ASCII码值。 - **CHR**:根据ASCII码值返回相应的字符。 - **CONCAT**:连接两个字符串。 - **INITCAP**:将字符串的首字母大写,其余字母小写。 - **INSTR**:查找子串在字符串中的位置。 - **LENGTH**:返回字符串的长度。 - **LOWER**/ **UPPER**:转换字符串为全小写或全大写。 - **RPAD**/ **LPAD**:在字符串右侧或左侧填充指定字符。 - **LTRIM**/ **RTRIM**:去除字符串左侧或右侧的空白字符。 - **BSTR**:返回字符串的一部分。 - **REPLACE**:替换字符串中的某部分。 - **SOUNDEX**:返回表示发音相似的单词的代码。 - **TRIM**:去除字符串两端的指定字符。 2. **数学运算** - **ABS**:返回数值的绝对值。 - **ACOS**/ **ASIN**/ **ATAN**:计算反三角函数值。 - **CEIL**/ **FLOOR**:向上取整或向下取整。 - **COS**/ **COSH**:计算余弦值或双曲余弦值。 - **EXP**:计算e的指数值。 - **LN**/ **LOG**:计算自然对数或以指定基数的对数。 - **MOD**:求模运算。 - **POWER**:计算幂值。 - **ROUND**/ **TRUNC**:四舍五入或截断数值。 - **SIGN**:返回数值的符号。 - **SIN**/ **SINH**:计算正弦值或双曲正弦值。 - **SQRT**:计算平方根。 - **TAN**/ **TANH**:计算正切值或双曲正切值。 3. **时间日期** - **ADD_MONTHS**:在日期基础上加上指定的月份数。 - **LAST_DAY**:返回指定月份的最后一天。 - **MONTHS_BETWEEN**:计算两个日期之间的月份数。 - **NEW_TIME**:转换时区。 - **NEXT_DAY**:计算下一个指定星期几的日期。 - **SYSDATE**:获取当前系统日期。 4. **其他辅助** - **CHARTOROWID**:将字符转换为行标识符。 - **CONVERT**:转换数据类型。 - **HEXTORAW**:将十六进制字符串转换为RAW数据。 - **RAWTOHEX**:将RAW数据转换为十六进制字符串。 通过以上内容的学习,DBA可以更好地理解Oracle数据库的核心概念和技术,从而更有效地管理和维护数据库系统。
剩余119页未读,继续阅读
- 粉丝: 0
- 资源: 4
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
评论1