老熟女激烈的高潮_日韩一级黄色录像_亚洲1区2区3区视频_精品少妇一区二区三区在线播放_国产欧美日产久久_午夜福利精品导航凹凸

重慶分公司,新征程啟航

為企業(yè)提供網(wǎng)站建設(shè)、域名注冊、服務(wù)器等服務(wù)

PostgreSQL中怎么控制文件在初始化時(shí)生成

PostgreSQL中怎么控制文件在初始化時(shí)生成,相信很多沒有經(jīng)驗(yàn)的人對此束手無策,為此本文總結(jié)了問題出現(xiàn)的原因和解決方法,通過這篇文章希望你能解決這個(gè)問題。

創(chuàng)新互聯(lián)是專業(yè)的桓仁網(wǎng)站建設(shè)公司,桓仁接單;提供成都網(wǎng)站制作、做網(wǎng)站,網(wǎng)頁設(shè)計(jì),網(wǎng)站設(shè)計(jì),建網(wǎng)站,PHP網(wǎng)站建設(shè)等專業(yè)做網(wǎng)站服務(wù);采用PHP框架,可快速的進(jìn)行桓仁網(wǎng)站開發(fā)網(wǎng)頁制作和功能擴(kuò)展;專業(yè)做搜索引擎喜愛的網(wǎng)站,專業(yè)的做網(wǎng)站團(tuán)隊(duì),希望更多企業(yè)前來合作!

控制文件是在初始化時(shí)生成,記錄PG運(yùn)行過程中的關(guān)鍵信息,大致分為以下幾類。

  • 初始化時(shí)自動(dòng)生成,運(yùn)行過程中不允許修改,例如系統(tǒng)標(biāo)識符;

  • 允許用戶在初始化時(shí)一次性定制,不再允許修改,例如WAL段尺寸;

  • 記錄創(chuàng)建數(shù)據(jù)庫的編譯時(shí)信息,例如catalog版本,啟動(dòng)此數(shù)據(jù)庫的程序也必須具有相同屬性;

  • 實(shí)時(shí)信息,比如檢查點(diǎn)記錄,崩潰中重啟能夠知道從哪里開始恢復(fù)。

1、初始化時(shí)傳遞給postgres參數(shù)

這個(gè)過程這里不多講,initdb使用 postgres --boot -x1 啟動(dòng)數(shù)據(jù)庫程序,進(jìn)入bootstrap 模式:

	if (argc > 1 && strcmp(argv[1], "--boot") == 0)
		AuxiliaryProcessMain(argc, argv);	/* does not return */

這段代碼在 main(int argc, char *argv[]) 函數(shù)中,以前的文章提到過它。

AuxiliaryProcessMain 中的參數(shù)解析:

	case 'x':
		MyAuxProcType = atoi(optarg);
		break;

這里取得輔助進(jìn)程的類型,其它參數(shù)遇到的時(shí)候再講。

2、輔助進(jìn)程定義

typedef enum
{
	NotAnAuxProcess = -1,
	CheckerProcess = 0,
	BootstrapProcess,
...
	NUM_AUXPROCTYPES			/* Must be last! */
} AuxProcType;

可知,initdb啟動(dòng)了一個(gè) BootstrapProcess 進(jìn)程。

3、初始化時(shí)自動(dòng)生成參數(shù)(系統(tǒng)標(biāo)識符)

繼續(xù)往下看會(huì)看到 BootStrapXLOG 的調(diào)用(src/backend/access/transam/xlog.c),系統(tǒng)標(biāo)識符在這里邊生成并最終寫入磁盤:

void
BootStrapXLOG(void)
{
...
	gettimeofday(&tv, NULL);
	sysidentifier = ((uint64) tv.tv_sec) << 32;
	sysidentifier |= ((uint64) tv.tv_usec) << 12;
	sysidentifier |= getpid() & 0xFFF;
...
  ControlFile->system_identifier = sysidentifier;
...
	WriteControlFile();
...

4、用戶定制參數(shù)

initdb 有參數(shù) --wal-segsize=SIZE,在啟動(dòng)時(shí) postgres 時(shí)用 'X' 傳入:

postgres —boot -x1 -X %u

這地方稍微別扭的地方是initdb和postgres兩個(gè)程序的X參數(shù)含義竟然不一致,好在是內(nèi)部實(shí)現(xiàn),使用者并不需要知道。

啟動(dòng)時(shí),參數(shù) X 賦值給 wal_segment_size

	case 'X':
		{
			int			WalSegSz = strtoul(optarg, NULL, 0);
...
			SetConfigOption("wal_segment_size", optarg, PGC_INTERNAL,
							PGC_S_OVERRIDE);
		}
		break;

隨后,在 WriteControlFile 中記入控制文件:

ControlFile->xlog_seg_size = wal_segment_size;

5、編譯時(shí)選項(xiàng)

函數(shù) WriteControlFile 寫入控制文件

	ControlFile->pg_control_version = PG_CONTROL_VERSION;
	ControlFile->catalog_version_no = CATALOG_VERSION_NO;

	ControlFile->maxAlign = MAXIMUM_ALIGNOF;
	ControlFile->floatFormat = FLOATFORMAT_VALUE;

	ControlFile->blcksz = BLCKSZ;
	ControlFile->relseg_size = RELSEG_SIZE;
...

6、實(shí)時(shí)信息

系統(tǒng)在運(yùn)行過程中更新 ControlFile,然后在某些節(jié)點(diǎn)寫入磁盤(調(diào)用 UpdateControlFile),比如CheckPoint時(shí),可以看到像系統(tǒng)標(biāo)識符這類信息是不會(huì)變的。

7、校驗(yàn)

寫入和更新時(shí)都會(huì)計(jì)算CRC,也寫入控制文件內(nèi),

	/* Contents are protected with a CRC */
	INIT_CRC32C(ControlFile->crc);
	COMP_CRC32C(ControlFile->crc,
				(char *) ControlFile,
				offsetof(ControlFileData, crc));
	FIN_CRC32C(ControlFile->crc);

讀取文件時(shí)校驗(yàn)它保證完整性:

	/* Now check the CRC. */
	INIT_CRC32C(crc);
	COMP_CRC32C(crc,
				(char *) ControlFile,
				offsetof(ControlFileData, crc));
	FIN_CRC32C(crc);

	if (!EQ_CRC32C(crc, ControlFile->crc))
		ereport(FATAL,
				(errmsg("incorrect checksum in control file")));

看完上述內(nèi)容,你們掌握PostgreSQL中怎么控制文件在初始化時(shí)生成的方法了嗎?如果還想學(xué)到更多技能或想了解更多相關(guān)內(nèi)容,歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道,感謝各位的閱讀!


網(wǎng)站題目:PostgreSQL中怎么控制文件在初始化時(shí)生成
分享鏈接:http://www.xueling.net.cn/article/ppsgjh.html

其他資訊

在線咨詢
服務(wù)熱線
服務(wù)熱線:028-86922220
TOP
主站蜘蛛池模板: 0855午夜福利 | 91精品视频导航 | 97日日碰曰曰摸日日澡 | 亚洲AV无码专区在线厂 | 国产性一交一乱一伦一色一情 | 亚洲香蕉伊综合在人在线观看 | 亚洲国产成在人网站天堂 | 亚洲第一页在线视频 | 国产精品99久久久久久一二区 | 91资源免费视频 | 男女爽爽午夜18污污影院 | 国产人人插 | 人妻系列综合第一页 | 中文字幕在线亚洲三区 | 深夜福利小视频 | 中文字母av | 欧美成人A猛片在线观看 | 国产区欧美区日韩区 | 安眠药扒开女同学双腿玩弄 | 最近2018中文字幕视频免费看 | aaaa日韩| 18禁超污无遮挡无码免费动态图 | 欧美日韩成人一区 | 亚洲精品成人片在线观看精品字幕 | 超碰在线观看av | 18禁成人网站免费观看 | 亚洲午夜免费福利视频 | 国产精品视频福利 | 羞羞影院午夜男女爽爽视频免费 | 国产精品久久久久久久白丝 | 91中文字幕精品永久在线 | 国产亚洲精久久久久久小说 | 人妻精品久久无码专区精东影业 | 亚洲天堂岛 | 国产情趣视频免费在线观看 | 欧美日韩国产激情一区 | 日韩成人在线看 | 九七国产精品 | 国产主播久久 | 亚洲精选无码久久久 | 99re6热在线精品 |