怎么分析打开后缀为 .dump 的数据库文件

怎么分析打开后缀为 .dump 的数据库文件,第1张

应该是PostgreSQL数据库的备份文件

数据库的导入导出是最常用的功能之一,每种数据库都提供有这方面的工具,PostgreSQL提供的对应工具为pg_dump和pg_restore。

pg_dump是用于备份PostgreSQL数据库的工具。它可以在数据库正在使用的时候进行完整一致的备份,并不阻塞其它用户对数据库的访问。转储格式可以是一个脚本或者归档文件。

归档文件格式必须和pg_restore一起使用重建数据库。

X:\>pg_dump -U postgres -Fc TestDb1 >TestDb1dump

X:\>pg_restore -U postgres -d TestDb2 TestDb1dump

如果是,可以用 mysqldump _u用户名 _P 密码 数据库名 [表名1 表名2]存放路径(d:/bkdump) 比如: 把temp数据库备份到 d:\tempdump 就可以使用下面的命令:mysqldump –u root –proot temp d:\tempdump

print,print_r,printf,sprintf,die,echo,var_dump,var_export 区别

1 echo()

可以同时输出多个字符串,可以多个参数,并不需要圆括号,无返回值。

2 print()

只可以同时输出一个字符串,一个参数,需要圆括号,有返回值,当其执行失败时返flase print 的用法和C语言很像,所以会对输出内容里的%做特殊解释。 $a=print('hi'); echo $a;

//---------------------------- hi 1 //1是$a的值。 //-----------------------------

3 die(); // 和exit()区别。

有两个功能:先输出内容,然后退出程序。(常用在链接服务器,数据库) mysql_connect("locahost","root","root") or die("链接服务器失败!");

4 printf(); //f指format格式化

printf("参数1",参数2):参数1=按什么 格式输出;参数2=输出的变量。(%s:按字符串;%d:按整型;%b: 按二进制;%x:按16进制;%X:按16进制大写输出;%o:按八进制;%f: 按浮点型) 函数,返回输出字符个数,把文字格式化以后输出,如: printf ("$%012f" , 432); //$4320 $表示填充的字符

0表示位数不够在不影响原值的情况下补0 1表示输出的总宽度

2 表示小数位数,有四舍五入 %f 是表示显示为一个浮点数 格式化命令及说明:

%% 印出百分比符号,不转换。 %b 整数转成二进位。

%c 整数转成对应的 ASCII 字符。 %d 整数转成十进位。

%f 倍精确度数字转成浮点数。 %o 整数转成八进位。 %s 整数转成字符串。

%x 整数转成小写十六进位。 %X 整数转成大写十六进位

<php

$num=100001;

printf("%d",$num); //100

printf("%s",$num); //100001 printf("%s---%d---%b---%x---%o---%f",$num,$num,$num,$num,$num,$num) //100001---100---1100100---64---144---100100100 printf("%2f",$num); //10000 (小数点保留2位)

printf("%1f",$num); //1000 (小数点保留1位)

printf("%`#10s",$num); // #10s printf("%#10s",$num); //10s >

5 sprintf();

此并不能直接输出,先赋给一个变量,然后再输出变量。 <php

$num=100001; $a=sprintf("%d",$num); echo $a; //100

>

6 print_r();

功能:只用于输出数组。

$a = array (1, 2, array ("a", "b", "c")); print_r ($a);

返回:

Array ( [0] => 1 [1] => 2 [2] => Array ( [0] => a [1] => b [2] => c ) )

7 var_dump();

功能: 输出变量的内 容,类型或字符串的内容,类型,长度。常用来调试。 <php $a=100;

var_dump($a); //int(100)

$a=100356;

var_dump($a); //float(100356) >

8var_export ();

返回关于传递给该函数的变量的结构信息,它和 var_dump() 类 似,不同的是其返回的表示是合法的 PHP 代码。

您可以通过将函数的第二个参数设置为 TRUE,

从而返回变量的值。

<php

$a = array (1, 2, array ("a", "b", "c")); var_export ($a); / 输出: array ( 0 => 1, 1 => 2,

2 => array (

0 => 'a', 1 => 'b', 2 => 'c', ), ) /

$b = 31;

$v = var_export($b, TRUE); echo $v; / 输出: 31 / >

使用Visual C++编程,有如下方法进行文件 *** 作:

(1)使用标准C运行库函数,包括fopen、fclose、fseek等。

(2)使用Win16下的文件和目录 *** 作函数,如lopen、lclose、lseek等。不过,在Win32下,这些函数主要是为了和Win16向后兼容。

(3)使用Win32下的文件和目录 *** 作函数,如CreateFile,CopyFile,DeleteFile,FindNextFile,等等。

Win32下,打开和创建文件都由CreateFile完成,成功的话,得到一个Win32下的句柄,这不同于“C”的fopen返回的句柄。在Win16下,该句柄和C运行库文件 *** 作函数相容。但在Win32下,“C”的文件 *** 作函数不能使用该句柄,如果需要的话,可以使用函数_open_osfhandle从Win32句柄得到一个“C”文件函数可以使用的文件句柄。

关闭文件使用Win32的CloseHandle。

在Win32下,CreateFile可以 *** 作的对象除了磁盘文件外,还包括设备文件如通讯端口、管道、控制台输入、邮件槽等等。

(4)使用CFile和其派生类进行文件 *** 作。CFile从CObject派生,其派生类包括 *** 作文本文件的CStdioFile, *** 作内存文件的CmemFile,等等。

CFile是建立在Win32的文件 *** 作体系的基础上,它封装了部分Win32文件 *** 作函数。

最好是使用CFile类(或派生类)的对象来 *** 作文件,必要的话,可以从这些类派生自己的文件 *** 作类。统一使用CFile的界面可以得到好的移植性。

MFC的文件类

MFC用一些类来封装文件访问的Win32 API。以CFile为基础,从CFile派生出几个类,如CStdioFile,CMemFile,MFC内部使用的CMiororFile,等等。

CFile的结构

CFile定义的枚举类型

CFile类定义了一些和文件 *** 作相关的枚举类型,主要有四种:OpenFlags,Attribute,SeekPosition,hFileNull。下面,分别解释这些枚举类型。

OpenFlags

OpenFlags定义了13种文件访问和共享模式:

enum OpenFlags {

//第一(从右,下同)至第二位,打开文件时访问模式,读/写/读写

modeRead = 0x0000,

modeWrite = 0x0001,

modeReadWrite = 0x0002,

shareCompat = 0x0000, //32位MFC中没用

//第五到第七位,打开文件时的共享模式

shareExclusive = 0x0010,//独占方式,禁止其他进程读写

shareDenyWrite = 0x0020,//禁止其他进程写

shareDenyRead = 0x0030,//禁止其他进程读

shareDenyNone = 0x0040,//允许其他进程写

//第八位,打开文件时的文件继承方式

modeNoInherit = 0x0080,//不允许子进程继承

//第十三、十四位,是否创建新文件和创建方式

modeCreate = 0x1000,//创建新文件,文件长度0

modeNoTruncate = 0x2000,//创建新文件时如文件已存在则打开

//第十五、十六位,文件以二进制或者文本方式打开,在派生类CStdioFile中用

typeText = 0x4000,

typeBinary = (int)0x8000

};

Attribute

Attribute定义了文件属性:正常、只读、隐含、系统文件,文件或者目录等。

enum Attribute {

normal = 0x00,

readOnly = 0x01,

hidden = 0x02,

system = 0x04,

volume = 0x08,

directory = 0x10,

archive = 0x20

}

SeekPosition

SeekPosition定义了三种文件位置:头、尾、当前:

enum SeekPosition{

begin = 0x0,

current = 0x1,

end = 0x2

};

hFileNull

hFileNull定义了空文件句柄

enum { hFileNull = -1 };

CFile的其他一些成员变量

CFile除了定义枚举类型,还定义了一些成员变量。例如:

UINT m_hFile

该成员变量是public访问属性,保存::CreateFile返回的 *** 作系统的文件句柄。MFC重载了运算符号HFILE来返回m_hFile,这样在使用HFILE类型变量的地方可以使用CFile对象。

BOOL m_bCloseOnDelete;

CString m_strFileName;

这两个成员变量是protected访问属性。m_bCloseOnDelete用来指示是否在关闭文件时删除CFile对象;m_strFileName用来保存文件名。

CFile的成员函数

CFile的成员函数实现了对Win32文件 *** 作函数的封装,完成以下动作:打开、创建、关闭文件,文件指针定位,文件的锁定与解锁,文件状态的读取和修改,等等。其中,用到了m_hFile文件句柄的一般是虚拟函数,和此无关的一般是静态成员函数。一般地,成员函数被映射到对应的Win32函数,如表11-1所示。

表11-1 CFile函数对Win32文件函数的封装

虚拟

静态

成员函数

对应的Win32函数

文件的创建、打开、关闭

Abort

CloseHandle

Duplicate

DuplicateHandle

Open

CreateFile

Close

CloseHandle

文件的读写

Read

ReadFile

ReadHuge(向后兼容)

调用Read成员函数

Write

WriteFile

WriteHuage(向后兼容)

调用Write成员函数

Flush

FlushFileBuffers

文件定位

Seek

SetFilePointer

SeekToBegin

调用Seek成员函数

SeekToEnd

调用Seek成员函数

GetLength

调用Seek成员函数

SetLength

SetEndOfFile

文件的锁定/解锁

LockRange

LockFile

UnlockRange

UnlockFile

文件状态 *** 作函数

GetPosition

SetFilePointer

GetStatus(CFileStatus&)

GetFileTime,GetFileSize等

GetStatus(LPSTR lpszFileName CFileStatus&)

FindFirstFile

GetFileName

不是简单地映射到某个函数

GetFileTitle

GetFilePath

SetFilePath

SetStatus

改名和删除

Rename

MoveFile

Remove

DeleteFile

CFile的部分实现

这里主要讨论CFile对象的构造函数和文件的打开/创建的过程。

构造函数

CFile有如下几个构造函数:

CFile()

缺省构造函数,仅仅构造一个CFile对象,还必须使用Open成员函数来打开文件。

CFile(int hFile)

已经打开了一个文件hFile,在此基础上构造一个CFile对象来给它打包。HFile将被赋值给CFile的成员变量m_hFile。

CFile(LPCTSTR lpszFileName, UINT nOpenFlags)

指定一个文件名和文件打开方式,构造CFile对象,调用Open打开/创建文件,把文件句柄保存到m_hFile。

打开/创建文件

Open的原型如下:

BOOL CFile::Open(LPCTSTR lpszFileName, UINT nOpenFlags,

CFileException pException)

Open调用Win32函数::CreateFile打开文件,并把文件句柄保存到成员变量m_hFile中。

CreateFile函数的原型如下:

HANDLE CreateFile(

LPCTSTR lpFileName,// pointer to name of the file

DWORD dwDesiredAccess,// access (read-write) mode

DWORD dwShareMode,// share mode

LPSECURITY_ATTRIBUTES lpSecurityAttributes, //pointer to security descriptor

DWORD dwCreationDistribution,// how to create

DWORD dwFlagsAndAttributes,// file attributes

HANDLE hTemplateFile// handle to file with attributes to copy

);

显然,Open必须把自己的两个参数lpszFileName和nOpenFlags映射到CreateFile的七个参数上。

从OpenFlags的定义可以看出,(nOpenFlags & 3)表示了读写标识,映射成变量dwAccess,可以取值为Win32的GENERIC_READ、GENERIC_WRITE、GENERIC_READ|GENERIC_WRITE。

(nOpenFlags & 0x70)表示了共享模式,映射成变量dwShareMode,可以取值为Win32的FILE_SHARE_READ、FILE_SHARE_WRITE、FILE_SHARE_WRITE|FILE_SHARE_READ。

Open定义了一个局部的SECURITY_ATTRIBUTES变量sa,(nOpenFlags & 0x80)被赋值给sabInheritHandle。

(nOpenFlags & modeCreate)表示了创建方式,映射成变量dwCreateFlag,可以取值为Win32的OPEN_ALWAYS、CREATE_ALWAYS、OPEN_EXISTING。

在生成了上述参数之后,先调用::CreateFile:

HANDLE hFile =::CreateFile(lpszFileName,

dwAccess, dwShareMode, &sa,

dwCreateFlag, FILE_ATTRIBUTE_NORMAL, NULL);

然后,hFile被赋值给成员变量m_hFile,m_bCloseOnDelete被设置为TRUE。

由上可以看出,CFile打开(创建)一个文件时大大简化了:: CreateFile函数的复杂性,即只需要指定一个文件名、一个打开文件的参数即可。若该参数指定为0,则表示以只读方式打开一个存在的文件,独占使用,不允许子进程继承。

在CFile对象使用时,如果它是在堆中分配的,则应该销毁它;如果在栈中分配的,则CFile对象将被自动销毁。销毁时析构函数被调用,析构函数是虚拟函数。若m_bCloseOnDelete为真且m_hFile非空,则析构函数调用Close关闭文件。

至于其他CFile成员函数的实现,这里不作分析了。

CFile的派生类

这里主要简要地介绍CStdioFile和CmemFile及CFileFind。

CStdioFile

CStdioFile对文本文件进行 *** 作。

CStdioFile定义了新的成员变量m_pStream,类型是FILE。在打开或者创建文件时,使用_open_osfhandle从m_hFile(Win32文件句柄)得到一个“C”的FILE类型的文件指针,然后,在文件 *** 作中,使用“C”的文件 *** 作函数。例如,读文件使用_fread,而不是::ReadFile,写文件使用了_fwrite,而不是::WriteFile,等等。m_hFile是CFile的成员变量。

另外,CStdioFile不支持CFile的Dumplicate、LockRange、UnlockRange *** 作,但是实现了两个新的 *** 作ReadString和WriteString。

CMemFile

CMemFile把一块内存当作一个文件来 *** 作,所以,它没有打开文件的 *** 作,而是设计了Attach和Detach用来分配或者释放一块内存。相应地,它提供了Alloc、Free虚拟函数来 *** 作内存文件,它覆盖了Read、Write来读写内存文件。

CFileFind

为了方便文件查找,MFC把有关功能归结成为一个类CFileFind。CFileFind派生于CObject类。首先,它使用FindFile和FineNextFile包装了Win32函数::FindFirstFile和::FindNextFile;其次,它提供了许多函数用来获取文件的状态或者属性。

使用CFileStatus结构来描述文件的属性,其定义如下:

struct CFileStatus

{

CTime m_ctime; // 文件创建时间

CTime m_mtime; // 文件最近一次修改时间

CTime m_atime; // 文件最近一次访问时间

LONG m_size; // 文件大小

BYTE m_attribute; // 文件属性

BYTE _m_padding; // 没有实际含义,用来增加一个字节

TCHAR m_szFullName[_MAX_PATH]; //绝对路径

#ifdef _DEBUG

//实现Dump虚拟函数,输出文件属性

void Dump(CDumpContext& dc) const;

#endif

};

例如:

CFileStatus status;

pFile->GetStatus(status);

#ifdef _DEBUG

statusdump(afxDump);

#endif

1、 mysqldump命令备份数据

在MySQL中提供了命令行导出数据库数据以及文件的一种方便的工具mysqldump,我们可以通过命令行直接实现数据库内容的导出dump,首先我们简单了解一下mysqldump命令用法:

#MySQLdump常用

mysqldump -u root -p --databases 数据库1 数据库2 > xxxsql

2、 mysqldump常用 *** 作实例

21备份全部数据库的数据和结构

mysqldump -uroot -p123456 -A > /data/mysqlDump/mydbsql

22备份全部数据库的结构(加 -d 参数)

mysqldump -uroot -p123456 -A -d > /data/mysqlDump/mydbsql

23 备份全部数据库的数据(加 -t 参数)

mysqldump -uroot -p123456 -A -t > /data/mysqlDump/mydbsql

24 备份单个数据库的数据和结构(,数据库名mydb)

mysqldump -uroot-p123456 mydb > /data/mysqlDump/mydbsql

25 备份单个数据库的结构

mysqldump -uroot -p123456 mydb -d > /data/mysqlDump/mydbsql

26 备份单个数据库的数据

mysqldump -uroot -p123456 mydb -t > /data/mysqlDump/mydbsql2

27 备份多个表的数据和结构(数据,结构的单独备份方法与上同)

mysqldump -uroot -p123456 mydb t1 t2 > /data/mysqlDump/mydbsql

28 一次备份多个数据库

mysqldump -uroot -p123456 --databases db1 db2 > /data/mysqlDump/mydbsql

计算机,里面包含的是程序。DLL是动态链接库的缩写,DLL后缀的文件是一个包含可由多个程序同时使用的代码和数据的库,DLL不是可执行文件。动态链接提供了一种方法,使进程可以调用不属于其可执行代码的函数。函数的可执行代码位于一个 DLL 中,该 DLL 包含一个或多个已被编译、链接并与使用它们的进程分开存储的函数。DLL 还有助于共享数据和资源。多个应用程序可同时访问内存中单个DLL 副本的内容。DLL 是一个包含可由多个程序同时使用的代码和数据的库。

DUMPDLL则是计算机转储程序所要用到的函数、数据库等。

以上就是关于怎么分析打开后缀为 .dump 的数据库文件全部的内容,包括:怎么分析打开后缀为 .dump 的数据库文件、mysql数据库如何导入.dump文件、PHP:怎么把var_dump()函数输出的值中的变量提取出来等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/9524685.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-29
下一篇 2023-04-29

发表评论

登录后才能评论

评论列表(0条)

保存