1、sql server中各类型文件
sql server有三种文件格式:第一种文件为主文件,后缀名为.mdf,数据库中的主要数据存储在这个文件中;第二种文件为次要(辅助)数据文件.ndf,除主数据文件以外的所有其他数据文件;还有一个文件是日志文件,后缀名为.ldf,主要记录数据库的日志以及数据库的操作记录,记录所有事务的 SQL 语句用于恢复数据库。一个数据库中必须有至少一个主文件和日志文件。但是主文件只能有一个,日志文件可以有多个。一般备份还原只需要将数据库分离,拷贝对应的mdf、.ndf和ldf文件到另外一台数据库中(版本必须和之前的一致或兼容),然后附加选择拷贝过来的文件(如果提示没有权限,可以对拷贝的文件进行授权)。这样就可以完成sql server数据库的异地备份。
2、MySQL中各类型文件
(1)错误日志文件(error log):错误信息、警告信息、正常信息
(2)慢查询日志文件(slow query log):大于超时阈值时,记录SQL到该文件
(3)查询日志文件(general log):记录对MySQL数据库所有请求的信息
(4)二进制日志文件(binary log):记录对MySQL数据库更改的操作日志
通过命令:
/bin/mysql --verbose --help| grep -A 1 'Default options'
可以查看MySQL的参数配置,查询出来具有顺序性。以下查询可以看出,MySQL是按
/etc/my.cnf → /etc/mysql/my.cnf → /usr/etc/my.cnf → ~/.my.cnf 顺序读取
注意:多个配置文件配置相同参数,以最后的读取为准。同时,MySQL数据库可以没有配置文件的情况下,则按照MySQL编译时默认参数和源代码指定参数的默认值来启动MySQL实例。
MySQL数据库的参数以键值对(key/value)的形式配置。通过show variables命令查询所有的参数配置,也可以通过like来过滤参数名。MySQL的参数类型分为两类:动态(dynamic)参数:MySQL实例运行中,可以修改的参数;静态(static)参数:整个MySQL实例生命周期不能修改(只读),启动实例前可以修改。设置参数命令:set global | session 或 set @@global | @@session。global是全局参数,即:整个实例生命周期都有效;session是当前会话参数设置。注意全局设置是对当前启动的实例生命周期都有效,但是实例本身不会对参数文件中的值进行修改。
错误日志文件(error log)对MySQL实例的启动、运行、关闭过程进行了记录,该文件不仅记录所有的错误信息,也记录警告和正常的信息。通过命令show variables like ‘log_error’查询错误日志文件的路径。
慢查询日志文件记录执行SQL时间大于long_query_time参数阈值的SQL语句。默认情况下,MySQL数据库不启动慢查询日志,通过参数slow_query_log来设置,默认关闭OFF,开启ON。注意:只有大于long_query_time(默认10s)时,才能记录SQL到慢查询日志文件中。等于该阈值时,不会记录。
查询日志文件记录所有对MySQL数据库请求的信息,无论是否正确执行。参数general_log控制是否开启,默认关闭OFF,原因是日志量非常庞大。参数general_log_file查询日志文件的路径,默认data目录。通过设置log_output参数决定查询日志的输出格式,默认FILE。设置为TABLE时,通过mysql.general_log表查看。
二进制日志文件记录所有对MySQL数据库执行更改的操作,但不包括SELECT和SHOW命令。注意,若更新语句本身并没有导致数据变化时,该操作也会写入二进制日志文件。关于二进制日志的相关参数,如下表所示。通过
show global status like 'binlog_cache%'
查询二进制日志缓冲的使用情况。Binlog_cache_disk_use表示使用临时文件写二进制日志的次数,Binlog_cache_use表示使用缓冲写二进制日志的次数,两者的比较可以看出binlog_cache_size设置值是否合理。
表空间文件—InnoDB采用将数据按表空间存放的设计,分为:共享表空间、独立表空间。默认配置下,会初始化大小10MB的共享(存放所有表)表空间文件,即:在数据目录下ibdata1文件。通过参数show variables like ‘innodb_data_file_path’可以设置,也可以多个文件组成一个表空间,同时设置文件属性。该参数是静态参数,实例运行期间不能设置,只有启动前配置。参数show variables like ‘innodb_file_per_table’控制是否开启为每个表建立独立表空间,默认开启ON,则表空间为:表名.ibd。注意:独立表空间存储:表数据、索引、插入缓冲的BITMAP信息,其他存储在默认共享表空间中。
重做日志文件(redo log)—重做日志文件记录了事务日志,称为InnoDB存储引擎的日志文件。目的是当MySQL宕机时,使用重做日志文件可以恢复宕机之前的数据,实现数据库ACID中的持久性。默认情况下,每一个InnoDB存储引擎至少有一个重做日志文件组(group),每个组下默认2个重做日志文件,如:默认ib_logfile0和ib_logfile1文件。注意组下的每个重做日志文件大小相同,并且以循环写入的方式运行。写入重做日志文件不是直接写,而是先写入重做日志缓冲(redo log buffer),然后按照循环顺序写入重做日志文件。写入磁盘时,一次写入512字节oracle数据类型,即:按一个扇区的大小写入,因为扇区是系统写时的最小单位,进而无需双次写doublewrite。参数innodb_log_buffer_size设置缓冲大小,默认8MB。下图所示是重做日志写入过程。参数innodb_flush_log_at_trx_commit控制事务提交时处理重做日志方式,默认1(事务提交时,redo log buffer写入磁盘)、0(等待master thread每秒刷新到磁盘)、2(异步写入磁盘,注意事务提交时不能确保写入重做日志中)。注意:0、2导致事务丢失,为了保证ACID特性中的持久性,则设置为1,保证每当事务提交时,确保事务都已经写入重做日志文件。
3、Oracle中各类型文件
Oracle中构成数据库和实例的8种文件:1、参数文件2、跟踪文件3、警告文件4、数据文件5、临时文件6、控制文件7、重要日志文件8、密码文件。
参数文件—数据库的参数文件通常称之为初始文件,如果没有参数文件,我们就无法启动Oracle数据库。这些文件告诉oracle实例在哪里可以找到控制文件,并且指定某些初始化参数,这些参数定义了某种内存结构有多大等设置。Oracle中存在两个参数文件pfile和spfile。在Oracle启动的时候,会以spfilesid.ora –> spfile.ora –>initsid.ora这种顺序来读取文件oracle数据类型,如果都没有则会报错。
跟踪文件—跟踪文件能提供调试信息,当服务器遇到问题的时候,会生成一个包含大量诊断信息的跟踪文件。Oracle数据库会根据使用的连接类型,来决定在哪里储存相关的跟踪文件。
在想要找优化调试的跟踪文件的情况下:
如果是使用专用服务器连接,会在user_dump_dest参数指定的目录中生成跟踪文件。
如果使用共享服务器,则在background_dest参数指定的目录中生成跟踪文件。跟踪文件的文件名会以:文件名的第一部分是ORACLE_SID,文件中下一部分只有ora,文件名中的数字就是专用服务器的进程ID,这样可以在V$PROCESS视图中得到。在想找内部错误生成的跟踪文件情况下:可以使用ADRCI工具来查看问题。
警告文件—警告文件就是数据库的日记,在这个文件中,可以看到数据库的编年史,包括日志开关,表空间何时创建、离线以及恢复为在线,等等。
数据文件—数据文件和重做日志文件是数据库中最重要的文件。创建一个数据库至少会有三个数据文件,一个对应SYSTEM表空间,一个对应USER表空间,另一个对应SYSAUX表空间。在ORACLE中可以用四种文件机制存储你的数据。
操作系统文件系统:这些就像文档一样放在文件系统中。
原始分区:这不是文件,而是原始磁盘。
自动存储管理:可以将其看做数据库文件系统,这里只能存储与数据库相关的信息:你的表,索引,备份,控制文件等。
集群文件系统
数据库是由一个或者多个表空间构成的,而表空间中包含段,我们下面来介绍:
段:就是占用存储空间的数据库对象,比如:表,索引等等,在创建表的时候就会创建一个表段,创建分区表的时候,每个分区会创建一个段依次类推。占用存储空间的每一个对象都会存储到段中。区段:段本身又由一个或者多个区段组成。区段是文件中一个逻辑上连续分配的空间。11g中引入了延迟段的概念——不会立即分配区块的段,段将延迟分配初始区段,知道插入数据。如果一个对象超过其初始区段,就会为他请求分配另一区段。块:区段又进一步由块组成。块是Oracle中最小的空间分配单位,通过Oracle从磁盘中读写的就是块。通常块的大小有四中2KB,4KB,8KB,16KB.在一个表空间中,所有块的大小都是相同的。
临时文件—这是一种特殊类型的数据文件,Oracle使用临时文件来存储大规模排序操作和散列操作的中间结果,如果RAM没有足够的空间,还会用临时文件存储全局临时表数据。永久数据对象不会存储到临时文件中。
控制文件—这个文件是一个相当小的文件,告诉你数据文件、临时文件和重做日志文件在哪里,还会指出与文件状态有关的其他元数据。
重做日志文件—重做日志文件对Oracle数据库至关重要,他们是数据库的事物日志,通过用于恢复,不过也可以用于以下工作:
系统奔溃后的实例恢复
通过备份恢复数据文件之后恢复介质
备用数据库处理
输入到流中,可以用于信息共享
你在Oracle中完成的每一个几乎都会生成一定的redo信息,并写入在线重做日志文件。重做日志文件有两种类型,在线和归档。每个Oracle都会有至少两个在线重做日志文件组。这些组的单个重做日志文件成员之间实际上形成彼此真正的镜像。这些在线重做日志文件的大小是固定的,并以循环方式使用,先写日志组1,当到文件的最后的时候,切换到日志组2,从头到尾写这些文件的内容。在填满日志1并切换到日志2的时候,Oracle就会启动一个检查点,此时DBWn集合将文件组1保护的所有脏块写到磁盘中,在DBWn把该日志保护的所有块刷新输出之前,Oracle都不会重用这个日志文件。
密码文件—密码文件用于对通过网络完成管理活动的用户进行认证。
限时特惠:本站每日持续更新海量设计资源,一年会员只需29.9元,全站资源免费下载
站长微信:ziyuanshu688