对于只读表空间,只需要在第一备份时进行备份,在以后的备份中不需要再对备份过的只读表空间进行备份。
硬盘空间满导致mysql ibd文件被删后提示Tablespace is missing for table ‘db_rsk/XXX“ 昨天一早,开发人员反馈说一个测试环境报Tablespace is missing for table ‘db_rsk/XXX“,周末刚升级过,特地让开发回去查了下,说脚本中肯定没有drop table的操作。datadir下检查了下,发现frm文件在的ibd文件没有了,bing了下,没发现类似异常。于是先回到mysql.err往回搜索,半天后发现上周五下午mysql出现了一
作者简介 胡中豪 云和恩墨西区交付工程师,多年一线 DBA 经验,曾服务于运营商、电网、政府行业、银行等行业客户;擅长数据库故障处理、性能优化、实施升级 本文由恩墨大讲堂147期线上分享整理而成。课程
昨天一早,开发人员反馈说一个测试环境报Tablespace is missing for table 'db_rsk/XXX",周末刚升级过,特地让开发回去查了下,说脚本中肯定没有drop table的操作。datadir下检查了下,发现frm文件在的ibd文件没有了,bing了下,没发现类似异常。于是先回到mysql.err往回搜索,半天后发现上周五下午mysql出现了一次异常宕机,说是磁盘空间不足了,看日志该文件被损坏了,如下:
说到不完全恢复,一般有三种场景,基于时间点的不完全恢复,基于scn的不完全恢复,基于cancel的不完全恢复。 三种情况都是不完全恢复采用的方式,而不完全恢复都是在完全恢复的过程中出现了这样那样的错误,数不胜数,基本就是归档,redo损坏丢失,控制文件丢失,备份的问题,手工失误等等。 我们可以举一个不完全恢复的案例,其实在实际操作的过程中还是有一些值得总结和学习的地方。 第一步准备基本的数据。目前我们可以看到在表空间data上只有一个表new_recover SQL> select owner,segmen
某个应用最近总出现死锁,其中一些是因为报了索引和数据行存在不匹配的问题,MOS中有如下文档可以参考。 ORA-1499. Table/Index row count mismatch(文档 ID 563070.1) 现象: 使用“validate structure cascade”分析表时报ORA-1499的错误,trace文件中包含“Table/Index row count mismatch”的错误信息。例如: SQL> analyze table test validate structure cascade; analyze table test validate structure cascade * ERROR at line 1: ORA-01499: table/index cross reference failure - see trace file trace文件中包含: Table/Index row count mismatch table 6559 : index 10000, 0 Index root = tsn: 6 rdba: 0x01400091 意味着扫描表返回6559行数据,索引扫描返回10000行数据。“Index root”是索引的段头信息。rdba: 0x01400091是相对于数据块地址的索引段头。他是十进制的20971665,Rfile#=5,Block#=145。
有客户反映有 3 套 MGR 环境全备失败,MySQL 版本为 8.0.18 ,xtrabackup 版本为 8.0.9 。报错信息如下:
今天总结了一下分区表的知识 分享一下。 大体有以下内容: 1.hash partition range partition list partition range hash partition range list partitio 2.partition operations add ,truncate,drop partitions merge ,move ,split partitions add values in list partitions exch
--====================== -- 只读表空间的备份与恢复 --====================== 一、只读表空间的特性 使用只读表空间避免对静态数据的频繁备份 当使用alter tablespace tbs read only时,数据文件会执行检查点进程(将所有脏缓冲区的内容写至磁盘), 当前的SCN号会被标注,同时存储了SCN的数据文件头部被冻结.控制文件内也会记录该数据文件的冻结信息。 可以清除只读表空间的对象 二、只读表空间的备份 一般情况下,只读表空间只需要进行一次备份,即当表空间状态发生改变时应立即进行备份 可以使用OS系统cp命令来备份或RMAN进行备份只读表空间 使用RMAN时建议启用备份优化选项 RMAN> CONFIGURE BACKUP OPTIMIZATION ON; 只读表空间不支持热备 SQL> alter tablespace tbs1 begin backup; alter tablespace tbs1 begin backup * ERROR at line 1: ORA-01642: begin backup not needed for read only tablespace 'TBS1' 三、只读表空间的还原与恢复 还原与恢复只读表空间的问题在于控制文件如何控制只读表空间,分为下列三种情况: --------- --------------- ---------------- ------------------------------------- case backup 1 crash status recovery --------- --------------- ---------------- ------------------------------------- case 1 Read-Only Read-Only 将备份的只读表空间复制到目的地(Restore) case 2 Read-Only Read-Write 先Restore backup1,后recover(applied log ) case 3 Read-Write Read-only 先Restore backup1,后recover(applied log ) 只读表空间恢复时需要考虑的问题 重建一个控制文件时 重命名数据文件时 使用一个备份的控制文件时 下面对表空间tbs1置为只读后对比前后生成的重建控制文件的脚本
LogMiner可以用来分析在线/redo日志,也可以用来分析离线日志文件/归档日志,是由一组PL/SQL包和一些动态视图组成,而且是免费的。
现居珠海,主要负责 Oracle、MySQL、mongoDB 和 Redis 维护工作。
作为MySQL DBA,在日常运维过程中,经常需要对某张表进行备份恢复。单个表常用的数据备份方法有下面几种:
比如本人使用的云服务器,其中MySQL预装版本为老版本5.1.x。而最新的mysql版本在性能、功能、安全性等方面都有了很多的改进。 要从最新版本获益,你需要把现有系统升级到5.5+(最新的版本是5.7),我保守一点,升级到5.6.37。
在实际环境中,许多数据库环境并没有做好完整的数据备份恢复计划及容灾方案,无法保证数据安全,并且出现一些灾难性的错误。那么我们就面临这样的问题:在什么样的最极端情况下,我们还能挽救回数据呢?
在实际环境中,许多数据库环境并没有做好完整的数据备份恢复计划及容灾方案,无法保证数据安全,并且出现一些灾难性的错误。那么我们就面临这样的问题:在什么样的最极端情况下,我们还能挽救回数据呢? 我们的用户数据存储在相应表空间的数据文件当中,而元数据部分则存储在系统表空间的数据文件当中。假如仅存在系统表空间及重要数据文件(而非所有数据文件)的情况下还有希望恢复数据吗?当然,这里不讨论使用 Dul 的方式进行恢复。 就这个问题,我做了两个测试,一个是在 Windows 的11.2.0.1的环境中,一个是在 Lin
昨天突然服务器重启了,最后导致的就是Zabbix的数据库MYSQL库表坏了,然后MYSQL就启动不了了。启动不了咋整,看log呗,报什么异常情况,查看error如下:
3)启动mysqld进程后,如果没有在my.cnf文件里增加该参数,启动时会报错,报错日志如下:
最近某套MySQL数据库服务器异常关机,导致MySQL不能正常拉起来,启动过程中,error日志中记录了如下的信息,可以看到,数据库因为异常关闭,此时会进行实例恢复的操作,
某个夏日的午后,窗外知了在大声鸣叫。而我却在睡梦中跟基友一起吃鸡,正准备抢空投时 。手机突然铃声响起,惊醒后一看是领导电话,一下子回到了现实中。心想又得去公司吃 "机" 了。
删除表空间语句:`DROP TABLESPACE SAC INCLUDING CONTENTS AND DATAFILES;` 根据MOS文档: How To Resolve ORA-29857 During a Drop Tablespace although No Domain Index exists in This Tablespace (文档 ID 1610456.1) 对于ORA-29857这个错误,文档说的很清楚:
使用系统用户登录 [username/password][@server][as sysdba|sysoper] 查看登录的用户 show user 启用scott用户 alter user scott account unlock|lock; 创建表空间 # 表空间 create tablespace $teblespace_name datafile '$filepath' size $sizeM; # 临时表空间 create temporary tablespace $teblespace_nam
本文来源:https://www.percona.com/blog/,爱可生开源社区翻译。
现在的MySQL版本已经可以实现自动扩展表空间,其中innodb_file_per_table默认是开启的,表示为每一张新建的表创建表空间,这样可以避免ibdata1过于庞大。
开发同学提了一个问题,说有个性能测试的数据库,正在准备数据,使用如下批量操作的语句,报错ORA-01950,无法执行插入,
oracle 常用命令大汇总(第一篇) 第一章:日志管理 1.forcing log switches sql> alter system switch logfile; 2.forcing checkpoints sql> alter system checkpoint; 3.adding online redo log groups sql> alter database add logfile [group 4] sq
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
现在得到一个需求,需要把生产环境的多个schema下的表结构复制到测试环境中的一个schema下。 生产环境和测试i环境的表空间配置都不一样。 目前可以考虑用如下的几种方式来实现。 1)使用exp/imp来做表结构的导出导入。 2)使用dbms_metadata.get_ddl来生成对应的ddl语句。 3)使用expdp/impdp来做表结构的导入导出。 因为涉及的表大约有2000个,采用dbms_metadata是一个很大的工作量而且在多个schema中需要权衡,所以没有采用。 expdp需要在服务端配置
在使用监控系统报警的时候,如果显示的报警信息为纯粹的文本,会枯燥很多,而且看起来很不清晰。 比如我们要监控表空间的使用情况,输出列有表空间名,状态,区管理方式,总共的空间,使用的空间,剩余的空间等。 如果显示成下面的形式,尽管在输出中尝试使结果看起来清晰一些,但是还是事与愿违。 showtsps:Tablespace: TEST_INDEX-->Status: OLN-->Ext_MGR: LOCAL-->Total: 301843.875MB-->Free: 30945.25MB-->Used: 270
《Oracle创建主键的三种方式》曾说了创建主键的三种方式,对第三种方式的作用,提到了这个原因,
create index IDX_ANA_OFFICE on ANA (OFFICE_CITY, OFFICE_NO) tablespace IDX pctfree 10 initrans 2 maxtrans 255 storage ( initial 128K next 128K minextents 1 maxextents unlimited pctincrease 0 );
近期计划使用XTTS方式迁移某库,在进行自包含检查时发现,该库有部分数据(分区表、索引)存放于SYSTEM表空间中,需要先将这部分数据移动到要迁移的表空间中。
第一章:日志管理 1.forcing log switches sql> alter system switch logfile; 2.forcing checkpoints sql> alter system checkpoint; 3.adding online redo log groups sql> alter database add logfile [group 4] sql> ('/disk3/log4a.rdo','/di
① 该语句会删除磁盘上的文件并更新控制文件和数据字典中的信息,删除之后的原数据文件序列号可以重用。
结论: 支持alter table move 的数据类型 :raw blob clob 不支持的数据类型 :long 和 long raw 实践是检验真理的最佳方法! 测试过程 1.测试raw和blob类型 SQL> create table t_move (id raw(16),btype blob) tablespace users; Table created. SQL> insert into t_move values ('411FC4193
MySQL里面的文件蛮有意思,之前大体有两个参数来做基本的控制。一个是innodb_data_file_path就是一个共享表空间,数据都往这一个文件里放,也就是ibdata1,这个文件其实角色是有重复的,undo,数据都会放在一起。ibdata1会持续增长,无法收缩。另外一个参数是innodb_file_per_table,这样一来,就成了独立表空间,通俗一些就是每一个表都有独立的文件.frm和.ibd,而且实际中使用独立表空间还是比较普遍的,对于delete的操作影响MySQL和Oracle就大大不同。
今天试验表空间传输,从一个库PROD 传输表空间到repos 假定表employees 在tbs4表空间里 SQL> select table_name,tablespace_name from user_tables where tablespace_name='TBS4'; TABLE_NAME TABLESPACE_NAME ------------------------------ ------------------------------ EMPLOYE
select owner, object_name, object_type, created, last_ddl_time, timestamp, status
grant select any sequence,create materialized view to 用户;
在之前写的一篇博文中,自己是打算对一台数据库使用Data Guard+TTS的方式来完成数据迁移和升级的工作,迁移式升级的新方案测试 (r10笔记第30天) 整体的思路如下。 备库Failove
ALTER TABLESPACE TS_DD_LHR DROP DATAFILE n; --n为数据文件号
分区索引(或索引分区)主要是针对分区表而言的。随着数据量的不断增长,普通的堆表需要转换到分区表,其索引呢,则对应的转换到分区索引。分区索引的好处是显而易见的。就是简单地把一个索引分成多个片断,在获取所需数据时,只需要访问更小的索引片断(块)即可实现。同时把分区放在不同的表空间可以提高分区的可用性和可靠性。本文主要描述了分区索引的相关特性并给出演示示例。
发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/118150.html原文链接:https://javaforall.cn
安装测试环境可以使用博主编写的 Oracle 一键安装脚本,同时支持单机和 RAC 集群模式!
由于本次迁移为历史库迁移,且数据库未开启归档模式,所以选择较为便捷第二种方式进行迁移。
不同的数据库表空间有不同的定义: 在 postgres 中,表空间 允许在文件系统中定义数据库对象存储的位置,实质上就是指定了一个目录。 与数据库的关系 在 postgres 中,一个表空间可以让多个数据库使用,而一个数据库也可以使用多个表空间,属于“多对多”的关系; 在 oracle 中,一个表空间只属于一个数据库,而一个数据库可以使用多个表空间,属于“一对多”的关系。
该系列专题为2018年4月OCP-052考题变革后的最新题库。题库为小麦苗解答,若解答有不对之处,可留言,也可联系小麦苗进行修改。
实验环境:Oracle 11.2.0.4 以获取jingyu用户下的T1表为例:
需求描述:要求开发库创建一个新用户A(默认表空间TBS_1),由于这库是共享库,还有其他schema(示例:表空间TBS_2)被其他组的开发人员使用,需要避免使用A用户的开发人员,利用create table t(col name) tablespace tbs_2通过指定表空间的方式在tbs_2上创建表,即禁止用户A可以在tbs_2表空间上进行操作。
LOBs,或Large Objects字段,是Oracle中用于处理存储非字符数据推荐的一种字段类型,例如mp3,video,图片,和long字符串数据。二进制大对象,或BLOBs,字符大对象,或CLOBs,能够存储TB的数据。
文件中存放的是frm对应表结构的sql,直接复制出来运行就行了,此时数据库中所有的结构都恢复了,就是还没有数据
领取专属 10元无门槛券
手把手带您无忧上云