10年ORACLE/MYSQL DBA,有一定C/C++基础
2016-06-08 04:38:11 7fa7ddd86700 InnoDB: Error: space id and page n:o stored in the page InnoDB: read in are 4294967295:4294967295, ...
1、一般构造函数 如果没有提供任何构造函数,创建一个什么都不做的构造函数 如: test::test() {} 如果希望编译器不使用这种默认的构造函数 可以自己定义默认构造函数 test::test() { .
C++ 类构造函数和析构函数 1、构造函数:构造函数用于对对象的数据进行初始化,构造函数的和一般的方法(函数)有一些不同 他的名字必须是类的名字,不能带返回值。
先明白动态库文件的3个名字 soname :通过gcc/g++ -soname,libtest2.so.1 设置他是程序中连接文件的时候找的文件,本身为一个连接,他包含大版本,如果任何小版本的变化,直接替换到 realname,然后ln -s 建立同样的soname 到新的realname文件即可,不需要重新编译程序。
静态变量:这种变量的内存将保存到整个程序的结束,他的内存是独立存放到一个叫做静态内存区的。 所有的静态的变量如果不赋值,会默认赋值为0,不管是结构体还是其他类型的变量, 当然静态变量的初始化也分为静态初始化和动态初始化,如果有一些不可确定的因素会使用 动态初始化 比如: int a = 1;静态初始化。
关于C++引用做为函数参数和指针作为函数参数 个人感觉引用和指针有着很多相识的地方 参考http://blog.itpub.net/7728585/viewspace-2113049/ 我们这里编写两段函数如下: 1、 AT_NAME &...
这种特性用来射你那个结构体中最后一个成员是特殊成员,它是不存在的 它包含如下规则: 1、必须是最后一个数组成员 2、结构体中至少有一个其他成员 3、使用[]进行定义 /********************************************...
只是演示,细节没有过多注意 程序如下: 主程序: /************************************************************************* > File Name: change.
关于C/C++ const变量 const指针 以及C++ 引用变量的解析 首先我们知道const表示一个不能更改的值,在程序中往往使用这种属性来保证安全,但是这种操作在C和C++中却不同 我测试中C++不能用MEMCPY进行更改但是C却可以 其中我们常见的 const int a = 10;一个常量,不能更改其a的值 const int *p1;一个指针但是他的返回值是const int类型 如我们可以 p = &a; int* const p;一个指针,这个指针在整个生命周期中不能指向其他位置。
C/C++中包含了一类inline函数,其只是单纯在原本函数申明或者定义前面多了一个inline 但是带来含义的确实不一样的。 如果不带inline那么主函数执行到函数入口处会跳到相应的函数代码除继续执行,在内存 中的代码段内存中这些代码不是连续的,这样肯能带来一些时间损耗 如果加入inline后函数会copy一份到主函数中,这样占用一定的内存但是不会jump(应该汇编使用的jump指令) 那么这样一来,可能inline函数适用的范围为函数代码本身代码量很少,而且执行非常快。
函数指针声明必须包含正确的返回值类型和输入类型 如函数原型: int pam(int ); 正确的函数指针应该为: int (*p)(int); 如果写为 double (*p)(int);肯定是错误的。
在函数传递值的过程中,一般都是值传递但是数组确实传递的指针,这样主要用于避免过多数据复制占用过多的内存空间。 我们在设置函数的时候可以使用 int puta(const int geta[],int s_a) 来避免原始数组受到修改,如此的话修改会报错input.
导入语句如下: impdp system/'Nnrjt$739rt' job_name=sec_dmp tables=seccore.syn_event remap_schema=seccore:sechis dumpfile=BAK:expdp_20160523.
关于函数指针的简单例子 函数指针简单格式如下: int (*p)(int i, char c) 首先它是一个指针,其次它是指向一个函数地址的指针,再次这个函数的返回值为int数值.
database:10.2.0.1 OS WINDOWS SERVER 2008 今天由于朋友的数据的断电重启后,数据库起不来,更蛋疼的是SQLPLUS,LSNRCTL都进不去 要么一直hang住要么报错 ORA-12560: TNS: Protocol A...
Y/N :最好使用char数组进行实现 ,不要用cin.get() getchar()或者scanf一切关于字符的函数实现 C++使用cin.getline() 不包含换行符 C使用fgets() 包含换行符 1 /********************...
在C/C++中void代表的就是无类型或者为空,作为void *p这样的定义则说明这个指针 只包含了指针位置而不包含指针的类型,一般的指针包含2个属性指针位置和类型, 其中类型就能判断出其长度。
程序如下: 8 #include 9 #include 10 using namespace std; 11 12 13 int main(void) 14 { 15 unsigned int *t1 = new uns...
一般在C语言中我们使用malloc和free进行内存分配和释放,但是在C++中增加了一个新的 new和delete 操作来进行,按照C++的说法delete是释放内存但是指针得到保留,防止内存 泄露,并且NEW和DELETE要成对出现。
关于数据库的字符集问题一直都是一个比较恶心的问题,如果不了解其实质可能一直 都搞不清楚这个问题的根源,只能出了问题去度娘,这里我打算兼容ORACLE和MYSQL对字符集 的处理来描述乱码出现的情形和如何防止乱码问题出现的可能,本文只用UTF-8和GBK为 例...
关于MYSQL中FLOAT和DOUBLE类型的存储 其实在单精度和双精度浮点类型存储中其存储方式和C/C++一致准守IEEE标准他们都是浮点型的,所谓的浮点型,是小数点的位置可变,其能够表示的范围比定点小数要广得多,而存储空间节省,但是受到精度的影响,所以在严格的数...
TIMESTAMP和DATETIME的取值范围不同同时存储不同,TIMESTAMP占四个字节取值范围为 1970-01-01 00:00:00 到 2038-01-19 3:14:07 那么为什么是这个取值范围呢 4个字节明显不够存储日期格式。
其实这种错误和隐式转换有关 主要是由于转换的时候不能转换为期望的格式的然后出的问题 比如 1p这个字符要转换为 int(number)是不可能的 MYSQL 错误模拟如下: myql> show variables like 'sql_mode%'; +--...
转载http://blog.csdn.net/fwkjdaghappy1/article/details/7663331 auto_increment的基本特性 MySQL的中AUTO_INCREMENT类型的属性用于为一个表中记录自动生成ID功能,可在一定程度上代替Oracle,PostgreSQL等数据库中的sequence。
前文: 关于MYSQL INNODB index page header学习和实验总结 http://blog.itpub.net/7728585/viewspace-2063921/ 关于INNODB SYSTEM RECORD infimum和supremum的学习和实验研究 http://blog.
关于INNODB SYSTEM RECORD infimum和supremum的学习和实验研究 接上一篇 http://blog.itpub.net/7728585/viewspace-2063921/关于MYSQL INNODB index page head...
关于INNODB index header 所用到的工具是自己写的mysqlblock和bcview, 我放到了百度云盘 http://pan.baidu.com/s/1num76RJ 供大家下载和使用 普通表空间(及设置了innodb_file_per_table每个表都对应一个idb文件)从第4个块开始通常是innodb的数据页。
一个INNODB SPACE 最大为64TB,但是为什么这样大呢? 如果我们设置innodb_file_per_table后出现了多个SPACE 那么空间又是多大呢? 先讨论一下INNODB 每个PAGE的 4-8字节为 block 的块号,我们查看一下: (工具为自己编写放到了云盘http://pan.
今天启动MYSQL的时候发现如下问题: 2015-12-14 20:51:59 2098 [ERROR] InnoDB: Space id in fsp header 131225,but in the page header 65 2015-12-14 20:5...
僵尸进程出现在父进程没有回收子进程的PCB的时候,这个时候子进程已经结束,但是父进程没有回收他,保存了一份子进程的PCB在父进程的内核空间中。 僵尸进程占用的是一个PCB结构体的内存空间,所以占用量不会太大,但是过多的僵尸进程就会出现内存泄露,解决的办法就是给父进程...
有时候我们备份是做的全库的备份,但是在恢复的时候却需要单库的文件,如果需要的库很小,我们把全库备份恢复回去然后导出想要的库的文件势必非常慢和耗时,这个时候如果 能够拆分文件为单库就好了,所以做了如下一个工具 工具叫做mysplit 可以查看备份出来每个库的大小和分割文件。
有的时候我们做OGG的时候add trandata会出现异常。 这里就剖析一下add trandata到底做了什么GGSCI (yjfora81 as ggs_admin@testdb) 2> add trandata ppzhu1.
今天遇到这个BUG。 现象就是没有任何日志,但是系统一直HANG着尝试使用远控卡RESET了很多次依然不能解决如下: [root@cqyjfora200 log]# top top - 22:40:18 up 8 min, 2 users, load average: 0.
通过学习姜大师的INNODB 存储引擎,获得了块的格式的标识位,同时看到书上有他自己写的一个工具能够查看数据块的类型, 那么既然知道了标识位,我使用C语言也写了一个功能类似的小工具,不要在生产环境,可用于学习和研究 后期会加入更多想到的有用的功能。
关于MYSQL flush table的作用水平有限,还待学习。如有错误,请指正。 先给出官方文档: ? FLUSH TABLES Closes all open tables, forces all tables in use to be closed, and flushes the query cache.
关于LINUX SCP后台运行 1、进入会话后 scp -P 31079 gaopeng@10.10.10.1:/home/gaopeng/yjf_openapi.
7 8 #include 9 #include 10 #include 11 #include 12 #include 13 #include 14 15 16 17 int main(int argc...
getuid() 实际用户ID为 执行程序的实际用户ID geteuid() 有效用户ID与设置用户ID有关,及权限中的S位 如果权限为rws 那么s位代表其他用户执行程序时改变为主用户权限。
在了解了EXT2的构架后,我们来了解一下硬链接是什么: 说白了一个文件都有一个Inode和相应目录下的记录项,如果我们建立一个硬连接实际上是在目录下建立一个新的记录项 我们知道记录项中包含了 Inode的编号,新的记录项实际也是指向原有的Inode 我们来考虑如...
官方文档描述如下: By default, InnoDB uses the fsync()system call to flush both the data and log files.
表现为 select tuned_undoretention from v$undostat; 的值异常大,UNDO_DATAFILE 不断的自动扩张。 mos有相关的BUG说明 Bug 7291739 Contention with auto-tuned...
来自METALINK 转载一下 Description Note: This fix causes the problem reported in bug 9711859.
MYSQL多表更新操作, 一般来说这类操作可以用IN和NOT IN,至少在ORACLE中可以这样做,ORACLE对IN和NOT IN的优化程度很高 一般使用SEMI JOIN和ANTI JOIN进行半连接,抛弃不需要的行,但是MYSQL在这方面性能还是有一些问题, 所以建议使用连接的方式如下,对于联合UPDATE ORACLE可以使用MERGE来代替比如 update a,b set a.name=b.name where a.id=b.id; ORACLE是没有这种语法的,一句话MYSQL的连接查询在ORACLE中都可以有相应的代替。
先来研究NUMBER类型的数字回推算法 类型 ,符号/指数位 [数字1,数字2,数字3,......,数字20] 1、长度类型没什么号说的 2、符号位,这个需要说一下 The sign bit, which is the high order bit (128...
关于DBA的换算问题,我们知道了10bit的file number,每个对象最多有1022个文件(2个文件预留)22bit的block number,每个文件最多有4M个BLOCK 及DBA中高10位是文件号,第22位是块号,一般我们使用dbms_utility进行...
只是一个列子和方法具体的选项按需求添加 1、ORACLE卸载数据 DECLARE row_result varchar2(4000); selectsql varchar2(4000); qrycursor SYS_REFCURSOR; txt_handle UTL_FILE.
今天从ORACLE导出数据文本格式的到MYSQL 5.6 发现 load data infile Incorrect date value '' 这种报错,从5.
首先说明索引组织表和本地分区唯一索引有着共同的特点。 1、索引组织表(以下简称IOT)要求主键是必须的因为表的结构会按照主键索引进行构造,如果IOT分区那么,那么可以理解为一个类似的按照某个字段分区的 本地索引,因为索引和表是在一起的,表的分区必然就是索引的分。
有的时候我们不想导出EXPDP文件然后FTP到目标服务器IMPDP 因为这样会占用大量的空间,并且浪费时间,我们就可以通过如下的方式 直接将远端的数据导入到本地。
查看日志文件没有任何日志。报错 CRS-4124: Oracle High Availability Services startup failed. CRS-4000: Command Start failed, or completed with errors.