[SCN REFACTOR] replace flash back snapshot and remove read snapshot session

This commit is contained in:
wangt1xiuyi
2022-11-28 01:54:50 +00:00
committed by ob-robot
parent c4c13f6296
commit 11485d6a98
268 changed files with 6763 additions and 7737 deletions

View File

@ -76,7 +76,7 @@ TEST(ObBackupDest, nfs)
TEST(ObBackupDest, oss)
{
const char *backup_test = "oss://backup_dir/?host=http://oss-cn-hangzhou-zmf.aliyuncs.com&access_id=111&access_key=222&delete_mode=tagging";
const char *backup_test = "oss://backup_dir/?host=xxx.com&access_id=111&access_key=222&delete_mode=tagging";
ObBackupDest dest;
ObBackupDest dest1;
char backup_dest_str[OB_MAX_BACKUP_DEST_LENGTH] = { 0 };
@ -88,9 +88,9 @@ TEST(ObBackupDest, oss)
ASSERT_TRUE(dest.storage_info_->device_type_ == 0);
ASSERT_EQ(OB_SUCCESS, dest.get_backup_dest_str(backup_dest_str, sizeof(backup_dest_str)));
ASSERT_EQ(0, strcmp(backup_dest_str, "oss://backup_dir?host=http://oss-cn-hangzhou-zmf.aliyuncs.com&access_id=111&encrypt_key=9B6FDE7E1E54CD292CDE5494CEB86B6F&delete_mode=tagging"));
ASSERT_EQ(0, strcmp(backup_dest_str, "oss://backup_dir?host=xxx.com&access_id=111&encrypt_key=9B6FDE7E1E54CD292CDE5494CEB86B6F&delete_mode=tagging"));
ASSERT_EQ(OB_SUCCESS, dest.get_backup_path_str(backup_path_str, sizeof(backup_path_str)));
ASSERT_EQ(0, strcmp(backup_path_str, "oss://backup_dir?host=http://oss-cn-hangzhou-zmf.aliyuncs.com"));
ASSERT_EQ(0, strcmp(backup_path_str, "oss://backup_dir?host=xxx.com"));
ASSERT_TRUE(dest.is_root_path_equal(dest1));
bool is_equal = false;
ASSERT_EQ(OB_SUCCESS, dest.is_backup_path_equal(dest1, is_equal));
@ -103,14 +103,14 @@ TEST(ObBackupDest, oss)
TEST(ObBackupDest, oss_encrypt)
{
const char *backup_test = "oss://backup_dir?host=http://oss-cn-hangzhou-zmf.aliyuncs.com&access_id=111&encrypt_key=9B6FDE7E1E54CD292CDE5494CEB86B6F";
const char *backup_test = "oss://backup_dir?host=xxx.com&access_id=111&encrypt_key=9B6FDE7E1E54CD292CDE5494CEB86B6F";
ObBackupDest dest;
ASSERT_EQ(OB_SUCCESS, dest.set(backup_test));
LOG_INFO("dump backup dest", K(dest.get_root_path()), K(*(dest.get_storage_info())));
ASSERT_EQ(0, strcmp(dest.root_path_, "oss://backup_dir"));
ASSERT_TRUE(dest.storage_info_->device_type_ == 0);
const char *path = "oss://backup_dir/";
const char *endpoint = "host=http://oss-cn-hangzhou-zmf.aliyuncs.com";
const char *endpoint = "host=xxx.com";
const char *authorization = "access_id=111&encrypt_key=9B6FDE7E1E54CD292CDE5494CEB86B6F";
const char *extension = "";
ObBackupDest dest1;
@ -120,9 +120,9 @@ TEST(ObBackupDest, oss_encrypt)
char backup_dest_str[OB_MAX_BACKUP_DEST_LENGTH] = { 0 };
char backup_path_str[OB_MAX_BACKUP_DEST_LENGTH] = { 0 };
ASSERT_EQ(OB_SUCCESS, dest.get_backup_dest_str(backup_dest_str, sizeof(backup_dest_str)));
ASSERT_EQ(0, strcmp(backup_dest_str, "oss://backup_dir?host=http://oss-cn-hangzhou-zmf.aliyuncs.com&access_id=111&encrypt_key=9B6FDE7E1E54CD292CDE5494CEB86B6F"));
ASSERT_EQ(0, strcmp(backup_dest_str, "oss://backup_dir?host=xxx.com&access_id=111&encrypt_key=9B6FDE7E1E54CD292CDE5494CEB86B6F"));
ASSERT_EQ(OB_SUCCESS, dest.get_backup_path_str(backup_path_str, sizeof(backup_path_str)));
ASSERT_EQ(0, strcmp(backup_path_str, "oss://backup_dir?host=http://oss-cn-hangzhou-zmf.aliyuncs.com"));
ASSERT_EQ(0, strcmp(backup_path_str, "oss://backup_dir?host=xxx.com"));
dest1.reset();
ASSERT_EQ(OB_SUCCESS, dest1.set(path, endpoint, authorization, extension));
@ -131,13 +131,13 @@ TEST(ObBackupDest, oss_encrypt)
TEST(ObBackupDest, cos_encrypt)
{
const char *backup_test = "cos://backup_dir/?host=http://oss-cn-hangzhou-zmf.aliyuncs.com&access_id=111&encrypt_key=9B6FDE7E1E54CD292CDE5494CEB86B6F&appid=333";
const char *backup_test = "cos://backup_dir/?host=xxx.com&access_id=111&encrypt_key=9B6FDE7E1E54CD292CDE5494CEB86B6F&appid=333";
ObBackupDest dest;
ASSERT_EQ(OB_SUCCESS, dest.set(backup_test));
ASSERT_EQ(0, strcmp(dest.root_path_, "cos://backup_dir"));
ASSERT_TRUE(dest.storage_info_->device_type_ == 2);
const char *path = "cos://backup_dir/";
const char *endpoint = "host=http://oss-cn-hangzhou-zmf.aliyuncs.com";
const char *endpoint = "host=xxx.com";
const char *authorization = "access_id=111&encrypt_key=9B6FDE7E1E54CD292CDE5494CEB86B6F";
const char *extension = "appid=333";
@ -147,14 +147,14 @@ TEST(ObBackupDest, cos_encrypt)
char backup_dest_str[OB_MAX_BACKUP_DEST_LENGTH] = { 0 };
char backup_path_str[OB_MAX_BACKUP_DEST_LENGTH] = { 0 };
ASSERT_EQ(OB_SUCCESS, dest.get_backup_dest_str(backup_dest_str, sizeof(backup_dest_str)));
ASSERT_EQ(0, strcmp(backup_dest_str, "cos://backup_dir?host=http://oss-cn-hangzhou-zmf.aliyuncs.com&access_id=111&encrypt_key=9B6FDE7E1E54CD292CDE5494CEB86B6F&appid=333"));
ASSERT_EQ(0, strcmp(backup_dest_str, "cos://backup_dir?host=xxx.com&access_id=111&encrypt_key=9B6FDE7E1E54CD292CDE5494CEB86B6F&appid=333"));
ASSERT_EQ(OB_SUCCESS, dest.get_backup_path_str(backup_path_str, sizeof(backup_path_str)));
ASSERT_EQ(0, strcmp(backup_path_str, "cos://backup_dir?host=http://oss-cn-hangzhou-zmf.aliyuncs.com"));
ASSERT_EQ(0, strcmp(backup_path_str, "cos://backup_dir?host=xxx.com"));
ASSERT_EQ(OB_SUCCESS, dest1.get_backup_dest_str(backup_dest_str, sizeof(backup_dest_str)));
ASSERT_EQ(0, strcmp(backup_dest_str, "cos://backup_dir?host=http://oss-cn-hangzhou-zmf.aliyuncs.com&access_id=111&encrypt_key=9B6FDE7E1E54CD292CDE5494CEB86B6F&appid=333"));
ASSERT_EQ(0, strcmp(backup_dest_str, "cos://backup_dir?host=xxx.com&access_id=111&encrypt_key=9B6FDE7E1E54CD292CDE5494CEB86B6F&appid=333"));
ASSERT_EQ(OB_SUCCESS, dest1.get_backup_path_str(backup_path_str, sizeof(backup_path_str)));
ASSERT_EQ(0, strcmp(backup_path_str, "cos://backup_dir?host=http://oss-cn-hangzhou-zmf.aliyuncs.com"));
ASSERT_EQ(0, strcmp(backup_path_str, "cos://backup_dir?host=xxx.com"));
}
int main(int argc, char **argv)

View File

@ -1,50 +0,0 @@
-----BEGIN CERTIFICATE-----
MIIDqTCCApECAgDMMA0GCSqGSIb3DQEBCwUAMIGYMQswCQYDVQQGEwJDTjEQMA4G
A1UECAwHQmVpamluZzEQMA4GA1UEBwwHQmVpamluZzEWMBQGA1UECgwNQ2lwaGVy
R2F0ZXdheTEUMBIGA1UECwwLRGV2ZWxvcG1lbnQxEjAQBgNVBAMMCUNBU0JNVU5F
VzEjMCEGCSqGSIb3DQEJARYUZ3lAY2lwaGVyZ2F0ZXdheS5jb20wIBcNMjEwODIy
MDMwMTU2WhgPMjEyMTA3MjkwMzAxNTZaMIGYMQswCQYDVQQGEwJDTjEQMA4GA1UE
CAwHQmVpamluZzEWMBQGA1UECgwNQ2lwaGVyR2F0ZXdheTEUMBIGA1UECwwLRGV2
ZWxvcG1lbnQxEDAOBgNVBAcMB0JlaWppbmcxEjAQBgNVBAMMCUNBU0JNVU5FVzEj
MCEGCSqGSIb3DQEJARYUZ3lAY2lwaGVyZ2F0ZXdheS5jb20wggEiMA0GCSqGSIb3
DQEBAQUAA4IBDwAwggEKAoIBAQC4dR5v+LyNYFo8fb4v0Wz1bZEmbWLmAjbqfPqk
VZLT7cmARpc5O92OHNsNQkMSagvxoDRgddPFH9H2XQ4jOf4n0WMZ8hm9zlS/yP8D
cRNyWqhVE1G1dfGl4TbxbbEC9dDmv7+ZZsq9GLmS8+59eOEm08b4ZfMLTwYRYgr4
SUimtbb1UajWKhBMCxXl3+xgnoNgFnX8LiIVoCEoUncyng3bfBK93vxZNCkzA1OO
ubG8vV+evnOhqDxjKRpOMArrYCFcWYvq+kj16qI4vYUxJ63rMP2LE13ZRhlFnEoF
HSYu0GVL/z02luAHwZKCv7g8UaCVHdzP6Xm70eTnXmVhSPjvAgMBAAEwDQYJKoZI
hvcNAQELBQADggEBADqK2F1OLMawmFrWy/3IUaT6lPj+o8faHpLrQc5aC+xNzArv
KBUnj4BBUIFuPlicJtmTSZtn0yM/HVcTqfOnYzIv2ATI8/RWTwLjCfZLviWiQcu0
EZECjVIecZuAT5O5JBdIrk7BEqaARazeY+X9S5e9oe99x4DmAOqWfMb79FCznJAi
snEDuf5eftvZOCsnZdjWlq5Z/fruSr5JIyPX0wi4T2ktjkPWNeXWI8R2Gzum/hLM
L0NXnDrbdvGxFAK15H8FDR2665GFfSLJ63R7ahb8KDzrd1fUPcP+Sqqd/PyQTVdn
BzOIEpU0wTVhr7fcxs8H0mYzJuVZ++Cov3jGNNc=
-----END CERTIFICATE-----
-----BEGIN PRIVATE KEY-----
MIIEvgIBADANBgkqhkiG9w0BAQEFAASCBKgwggSkAgEAAoIBAQC4dR5v+LyNYFo8
fb4v0Wz1bZEmbWLmAjbqfPqkVZLT7cmARpc5O92OHNsNQkMSagvxoDRgddPFH9H2
XQ4jOf4n0WMZ8hm9zlS/yP8DcRNyWqhVE1G1dfGl4TbxbbEC9dDmv7+ZZsq9GLmS
8+59eOEm08b4ZfMLTwYRYgr4SUimtbb1UajWKhBMCxXl3+xgnoNgFnX8LiIVoCEo
Uncyng3bfBK93vxZNCkzA1OOubG8vV+evnOhqDxjKRpOMArrYCFcWYvq+kj16qI4
vYUxJ63rMP2LE13ZRhlFnEoFHSYu0GVL/z02luAHwZKCv7g8UaCVHdzP6Xm70eTn
XmVhSPjvAgMBAAECggEAVbyqfyVAjv4gM0nHIvbXDGT3OMNTWtHgsLGS1tunubYn
GOa217WJz8p9zvXjsyVzk8YBUmyyGEgoEblDHwCPr/ZVd/PeHylOny5Pyku+3EJj
R9gI/K1rusyp+yIfSt7zUK4D4suypJ5fc3zKd6u+C4wYSdEpXTJIAcBulOWLTWET
FbIYhIOPdceMpUUL7YatUMkZ+Qea48kBwb9CvVeAmfYwQ8XSbcQtom67goJquvG6
rTzjTStA+2b0jVGf016QiNRl2cuh55mDbroUDtVu5pLHzRKgNndZ3tPk5uIgtrVW
1pxzxdb6G+J2Rk6XNvBKScD33A5T48pYEJVIcubfYQKBgQDh48eWYepGUjRZjLNT
fRs6q5OGvqNxSroEiOhotSSWhPfG00kv6QPaeUu38LRE7t2vbtNpMWaJasla3dJo
0jppMkUnwwH/WbJZQ3WSkkFutuCECwsMwxiW5WNVNlAIMrrsH4lQ+334GnAOYRdl
p9C6nAnmjESayY4NhDJytcZxZwKBgQDRC4Mg7/RBO6ZXqZ56G9j647ABulfqMkjg
4aDpyyiA2w6BYeLpRGHlSOq0Q4/k72J9a17+UdAgmiZdxC9VtxIFfEdls2l1CANq
a6VXnHu86PexSVpg6RG5HhGg1FKGM/guXMoCVKfbYZLHkydK/KYiWKdNeLAdo3fL
qh98EoffOQKBgQCleaA3CMl+9C9HPmwLiAVPaGss9TB0CMLWGZjvQ2tnHEcKjrL5
duAMxnhyadEVAkrBfhU+5SJxHhodB4xgn0iM0XeZliA7d/DPtTxGv/9Q5IT6FcDl
e3Hi8G1g+eWM6+TEnqGQAnuYKX3W+scR/+pHGZGjIzQKlAYM3r+6CnExlwKBgEWV
dm2lUgHQ0DsH7Aerc1t4JOM+WvtLB7VLhZutE2to/3gT1EtfhtKipfWhM6m6AWfM
MM+o/gWMKk81+aeni6klyEJTKTxakYCAGoaCQTINvj1WNG5jxpF/L9EAPAQOEoOk
QV3rPgCphwlFs2Ojm819Axunm8AR5NN3aomLRY0JAoGBAKhD1G6xsnmQyTGQfbCN
zzXdb5VhK69LmjK9SgfWbY6g6wLJgceQhwjy6sMPBvppJMXKi0F849B2lZscoaqu
+NmVRbdbD+vSREfvvN0TIr2Gm7dw9n+efEDlyVUGM4DYYee/qM+5bA0AIQkCMJVw
U48l+8AlqzXL7c7f8Ol9gVFu
-----END PRIVATE KEY-----

View File

@ -1,41 +0,0 @@
# -*- coding: utf-8 -*-
import BaseHTTPServer
from SimpleHTTPServer import SimpleHTTPRequestHandler
import os
import socket
import ssl
import json
import random
script_home = os.path.dirname(os.path.abspath(__file__))
ip = "127.0.0.1"
port = 8888
response_data = """{
"token": "ob_test1",
"key": "5D6A57468605ADB17C065B3423E7112D",
"hash": "E185FFAD6642A467BF8E4311086E80A9B9F6B55D6BF2FE6A13F935E0479FC558",
"keyversion": "1",
"success": true,
"msg": ""
}
"""
class MyHandler(SimpleHTTPRequestHandler):
def do_POST(self):
self.data_string = self.rfile.read(int(self.headers['Content-Length']))
self.end_headers()
print self.data_string
self.wfile.write(response_data)
return
def main():
print ("simple https server, address:%s:%d" % (ip, port))
httpd = BaseHTTPServer.HTTPServer(('127.0.0.1', port), MyHandler)
httpd.socket = ssl.wrap_socket(httpd.socket, certfile='./mock_kms.pem', server_side=True)
httpd.serve_forever()
if __name__ == '__main__':
main()

View File

@ -197,7 +197,7 @@ TEST(TestEncryptionUtil, encrypt_master_key)
// ObServerConfig &config = ObServerConfig::get_instance();
// ASSERT_EQ(OB_SUCCESS, config.init(sys_config));
// ws.init(config);
// config.obconfig_url.set_value("http://api.test.ocp.oceanbase.alibaba.net/services?Action=ObRootServiceInfo&User_ID=ocptest&UID=rongwei.drw&ObRegion=xr.admin");
// config.obconfig_url.set_value("");
// config.cluster_id.set_value("1");
// config.cluster.set_value("xr.admin");
// ObArray<ObRootAddr> rs_list;

View File

@ -134,7 +134,7 @@ public:
DEF_INT_LIST(test_int_list_2, "1;2;3", "test list");
DEF_STR_LIST(test_str_list, "str1;str2;str3", "test list");
DEF_STR_LIST(test_str_list_2, "str1;str2;str3", "test list");
DEF_STR(url, "http://a.cc/?name=fufeng&pass=fufeng_pass", "test url");
DEF_STR(url, "test url", "test url");
DEF_DBL(dbl1, "1.234", "some info");
DEF_DBL(dbl2, "1.234", "[1.234,5.321]", "some info");
@ -374,7 +374,7 @@ TEST_F(TestServerConfig, ALL)
test_str_list = "123x";
EXPECT_TRUE(test_int_list.valid());
EXPECT_STREQ("http://a.cc/?name=fufeng&pass=fufeng_pass", url.str());
EXPECT_STREQ("test url", url.str());
EXPECT_EQ(1.234, dbl1);
EXPECT_EQ(1.234, dbl2);

View File

@ -1,204 +0,0 @@
/**
* Copyright (c) 2021 OceanBase
* OceanBase CE is licensed under Mulan PubL v2.
* You can use this software according to the terms and conditions of the Mulan PubL v2.
* You may obtain a copy of Mulan PubL v2 at:
* http://license.coscl.org.cn/MulanPubL-2.0
* THIS SOFTWARE IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
* EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
* MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
* See the Mulan PubL v2 for more details.
*/
#define USING_LOG_PREFIX SHARE
#include <gtest/gtest.h>
#include "lib/restore/oss/include/oss_c_sdk/aos_http_io.h"
#include "lib/restore/oss/include/oss_c_sdk/aos_define.h"
#include "vsclient.h"
#include "lib/utility/ob_test_util.h"
#include "share/restore/ob_restore_uri_parser.h"
#include "share/restore/ob_restore_base_reader.h"
#include "lib/restore/ob_storage.h"
#include "share/restore/ob_oss_resource_reader.h"
using namespace oceanbase::common;
using namespace oceanbase::share;
using namespace oceanbase::share::restore;
class TestRestoreReader: public ::testing::Test
{
public:
TestRestoreReader();
virtual ~TestRestoreReader();
virtual void SetUp();
virtual void TearDown();
private:
// disallow copy
DISALLOW_COPY_AND_ASSIGN(TestRestoreReader);
protected:
// function members
protected:
// data members
};
TestRestoreReader::TestRestoreReader()
{
int ret = OB_SUCCESS;
int aos_ret = AOSE_OK;
if(AOSE_OK != (aos_ret = aos_http_io_initialize(NULL, 0))) {
OB_LOG(WARN, "fail to init aos", K(aos_ret));
}
VIPSrv_Result *result = NULL;
VIPSrv_Config config;
config.jmenv_dom = "jmenv.tbsite.net";
config.cache_dir = getenv("HOME");
if(NULL == (result = vipsrv_global_init(&config))) {
ret = OB_OSS_ERROR;
OB_LOG(WARN, "fail to init vipserver", K(ret));
} else if(!result->is_success) {
ret = OB_OSS_ERROR;
OB_LOG(WARN, "fail to init vipserver", K(ret));
}
if(NULL != result) {
vipsrv_result_deref(result);
}
}
TestRestoreReader::~TestRestoreReader()
{
vipsrv_global_cleanup();
aos_http_io_deinitialize();
}
void TestRestoreReader::SetUp()
{
const int64_t MAX_BUF_SIZE = 2048;
char write_buf[MAX_BUF_SIZE];
char uri[OB_MAX_URI_LENGTH];
int n = 0;
ObBackupIoAdapter util;
const char *storage_info = "host=oss-cn-hangzhou-zmf.aliyuncs.com&access_id=LTAIwCjHu9OYhWyx&access_key=RHyQfn2TnnOyY9wsedthx1nx9EVkH3";
//resource unit
n = snprintf(write_buf, MAX_BUF_SIZE, "CREATE RESOURCE UNIT small_unit MAX_CPU 18.000000, MEMORY_SIZE 21474836480;");
snprintf(uri, OB_MAX_URI_LENGTH, "oss://071092/unittest/127/1001/resource_unit_definition");
EXPECT_EQ(OB_SUCCESS, util.write_single_file(uri, storage_info, write_buf, n));
//resource pool
n = snprintf(write_buf, MAX_BUF_SIZE, "CREATE RESOURCE POOL pool1 UNIT small_unit, UNIT_NUM 1, ZONE_LIST ('zone1');");
snprintf(uri, OB_MAX_URI_LENGTH, "oss://071092/unittest/127/1001/resource_pool_definition");
EXPECT_EQ(OB_SUCCESS, util.write_single_file(uri, storage_info, write_buf, n));
//create tenant
n = snprintf(write_buf, MAX_BUF_SIZE, "CREATE TENANT tt1 charset=utf8mb4, replica_num=5, zone_list('zone1'), primary_zone='zone1', "
"locality='FULL{1}@zone1', resource_pool_list('pool1');");
snprintf(uri, OB_MAX_URI_LENGTH, "oss://071092/unittest/127/1001/create_tenant_definition");
EXPECT_EQ(OB_SUCCESS, util.write_single_file(uri, storage_info, write_buf, n));
//create database
n = snprintf(write_buf, MAX_BUF_SIZE, "CREATE DATABASE IF NOT EXISTS `obtrade` DEFAULT CHARACTER SET = utf8mb4 REPLICA_NUM = 5;");
snprintf(uri, OB_MAX_URI_LENGTH, "oss://071092/unittest/127/1001/create_database_definition");
EXPECT_EQ(OB_SUCCESS, util.write_single_file(uri, storage_info, write_buf, n));
//system variable
n = snprintf(write_buf, MAX_BUF_SIZE, "set global wait_timeout = 28800;");
snprintf(uri, OB_MAX_URI_LENGTH, "oss://071092/unittest/127/1001/system_variable_definition");
EXPECT_EQ(OB_SUCCESS, util.write_single_file(uri, storage_info, write_buf, n));
//create_user_definition
n = snprintf(write_buf, MAX_BUF_SIZE, "create user monitor IDENTIFIED BY PASSWORD '*1975d095ac033caf4e1bf94f7202a9bbfeeb66f1';");
snprintf(uri, OB_MAX_URI_LENGTH, "oss://071092/unittest/127/1001/create_user_definition");
EXPECT_EQ(OB_SUCCESS, util.write_single_file(uri, storage_info, write_buf, n));
//user_privilege_definition
n = snprintf(write_buf, MAX_BUF_SIZE, "GRANT ALL PRIVILEGES ON *.* TO 'admin' WITH GRANT OPTION;");
snprintf(uri, OB_MAX_URI_LENGTH, "oss://071092/unittest/127/1001/user_privilege_definition");
EXPECT_EQ(OB_SUCCESS, util.write_single_file(uri, storage_info, write_buf, n));
//crate table
n = snprintf(write_buf, MAX_BUF_SIZE, " CREATE TABLE obtrade.business_activity_000 ("
"`TX_ID` varchar(256) NOT NULL id 16,"
"`STATE` varchar(2) NOT NULL id 17,"
"`ACCOUNT_TRANS_STATE` varchar(2) NOT NULL id 18,"
"`GMT_CREATE` datetime NOT NULL id 19,"
"`GMT_MODIFIED` datetime NOT NULL id 20,"
"`PROPAGATION` varchar(2) DEFAULT NULL id 21,"
"`CONTEXT` varchar(4096) DEFAULT NULL id 22,"
"PRIMARY KEY (`TX_ID`),"
"KEY `BUSINESS_ACTIVITY_GMT_IND` (`GMT_MODIFIED`) STORING (`STATE`) BLOCK_SIZE 16384 index_table_id = 1101710651081555"
") DEFAULT CHARSET = utf8mb4 COMPRESSION = 'lz4_1.0' REPLICA_NUM = 5 BLOCK_SIZE = 16384 USE_BLOOM_FILTER = FALSE "
" TABLEGROUP = 'obtrade_tablegroup' table_id = 1101710651081554 ;");
snprintf(uri, OB_MAX_URI_LENGTH, "oss://071092/unittest/127/1001/435656765867/ob_trade_definition");
EXPECT_EQ(OB_SUCCESS, util.write_single_file(uri, storage_info, write_buf, n));
//create_tablegroup_definition
n = snprintf(write_buf, MAX_BUF_SIZE, "CREATE TABLEGROUP tg1;");
snprintf(uri, OB_MAX_URI_LENGTH, "oss://071092/unittest/127/1001/create_tablegroup_definition");
EXPECT_EQ(OB_SUCCESS, util.write_single_file(uri, storage_info, write_buf, n));
//backup_info
n = snprintf(write_buf, MAX_BUF_SIZE, "0_127_1496650316422256_0");
snprintf(uri, OB_MAX_URI_LENGTH, "oss://071092/unittest/tenant_id/1001/backup_info");
EXPECT_EQ(OB_SUCCESS, util.write_single_file(uri, storage_info, write_buf, n));
//data_table_ids
n = snprintf(write_buf, MAX_BUF_SIZE, "435656765867:ob_trade");
snprintf(uri, OB_MAX_URI_LENGTH, "oss://071092/unittest/127/1001/data_table_ids_list");
EXPECT_EQ(OB_SUCCESS, util.write_single_file(uri, storage_info, write_buf, n));
//create index
n = snprintf(write_buf, MAX_BUF_SIZE, "CREATE UNIQUE INDEX __idx_1099511677787_haipeng_unique_index on oceanbase.haipeng ("
"`c1` int(11) NOT NULL id 16,"
"`c2` int(11) DEFAULT NULL id 17,"
"`c3` int(11) DEFAULT NULL id 18"
") BLOCK_SIZE 16384 index_table_id = 1099511677791 data_table_id = 1099511677787 STORING (`c2`);");
snprintf(uri, OB_MAX_URI_LENGTH, "oss://071092/unittest/127/1001/435656765867/__idx_1099511677787_haipeng_unique_index_definition");
EXPECT_EQ(OB_SUCCESS, util.write_single_file(uri, storage_info, write_buf, n));
//index_table_ids
n = snprintf(write_buf, MAX_BUF_SIZE, "435656765867:1099511677787:__idx_1099511677787_haipeng_unique_index");
snprintf(uri, OB_MAX_URI_LENGTH, "oss://071092/unittest/127/1001/index_table_ids_list");
EXPECT_EQ(OB_SUCCESS, util.write_single_file(uri, storage_info, write_buf, n));
}
void TestRestoreReader::TearDown()
{
}
TEST_F(TestRestoreReader, test_basic)
{
// The following only applies to offline testing. Regression testing on farm will always report errors and there is no runtime environment.
ObRestoreArgs arg;
const char *uri_001 = "oss://071092/unittest/1001?timestamp=1496650316422256&host=oss-cn-hangzhou-zmf.aliyuncs.com&access_id=LTAIwCjHu9OYhWyx&access_key=RHyQfn2TnnOyY9wsedthx1nx9EVkH3&restore_user=a&restore_pass=b";
EXPECT_EQ(OB_SUCCESS, ObRestoreURIParser::parse(ObString(uri_001), arg));
LOG_INFO("arg info", K(arg));
ObRestoreBaseReader reader(arg);
ObArray<ObString> stmts;
ASSERT_EQ(OB_SUCCESS, reader.init(ObString(uri_001)));
ASSERT_EQ(OB_SUCCESS, reader.get_create_unit_stmts(stmts));
LOG_INFO("restore test", K(arg), K(stmts));
ASSERT_TRUE(stmts.count() > 0);
ASSERT_EQ(OB_SUCCESS, reader.get_create_pool_stmts(stmts));
LOG_INFO("restore test", K(arg), K(stmts));
ASSERT_TRUE(stmts.count() > 0);
ObString stmt;
ASSERT_EQ(OB_SUCCESS, reader.get_create_tenant_stmt(stmt));
LOG_INFO("restore test", K(arg), K(stmt));
ASSERT_EQ(OB_SUCCESS, reader.get_create_tablegroup_stmts(stmts));
LOG_INFO("restore test", K(arg), K(stmts));
ASSERT_TRUE(stmts.count() > 0);
ASSERT_EQ(OB_SUCCESS, reader.get_create_database_stmts(stmts));
LOG_INFO("restore test", K(arg), K(stmts));
ASSERT_TRUE(stmts.count() > 0);
ASSERT_EQ(OB_SUCCESS, reader.get_create_data_table_stmts(stmts));
LOG_INFO("restore test", K(arg), K(stmts));
ASSERT_TRUE(stmts.count() > 0);
ASSERT_EQ(OB_SUCCESS, reader.get_create_index_table_stmts(stmts));
LOG_INFO("restore test", K(arg), K(stmts));
ASSERT_TRUE(stmts.count() > 0);
}
int main(int argc, char **argv)
{
oceanbase::common::ObLogger::get_logger().set_log_level("INFO");
OB_LOGGER.set_mod_log_levels("ALL.*:INFO,LIB.MYSQLC:ERROR");
::testing::InitGoogleTest(&argc,argv);
return RUN_ALL_TESTS();
}

View File

@ -880,4 +880,4 @@ int main(int argc, char **argv)
CLOG_LOG(INFO, "begin unittest: test_compaction_policy");
::testing::InitGoogleTest(&argc, argv);
return RUN_ALL_TESTS();
}
}

View File

@ -451,7 +451,7 @@ int TestDmlCommon::build_table_scan_param_base_(
scan_param.limit_param_.offset_ = 0;
scan_param.need_scn_ = false;
scan_param.pd_storage_flag_ = false;
scan_param.fb_snapshot_ = transaction::ObTransVersion::INVALID_TRANS_VERSION;
scan_param.fb_snapshot_.reset();
ObNewRange range;
range.table_id_ = table_id;

View File

@ -410,7 +410,7 @@ int TestLobCommon::build_lob_meta_table_scan_param(
scan_param.limit_param_.offset_ = 0;
scan_param.need_scn_ = false;
scan_param.pd_storage_flag_ = false;
scan_param.fb_snapshot_ = transaction::ObTransVersion::INVALID_TRANS_VERSION;
scan_param.fb_snapshot_.reset();
ObNewRange range;
range.table_id_ = table_id;