Preface
 
    In my previous two blogs,we have known about the tool of backing up MySQL db.I'm gonna use another tool named "MySQL Data Dumper" to do some test,here we go.
 
Introduce
 
    There's a third-party tool called mydumper which is similar with MySQL official backup tool mysqldump and identically backs up logically.The latest version of  mydumper is 0.9.3,Here's the website link:https://launchpad.net/mydumper/+milestone/0.9.3
 
 ###Download & Install mydumper.###
[root@zlm1 :: ~]
#wget https://launchpad.net/mydumper/0.9/0.9.1/+download/mydumper-0.9.1.tar.gz
---- ::-- https://launchpad.net/mydumper/0.9/0.9.1/+download/mydumper-0.9.1.tar.gz
Resolving launchpad.net (launchpad.net)... 91.189.89.223, 91.189.89.222
Connecting to launchpad.net (launchpad.net)|91.189.89.223|:... connected.
HTTP request sent, awaiting response... See Other
Location: https://launchpadlibrarian.net/225370879/mydumper-0.9.1.tar.gz [following]
---- ::-- https://launchpadlibrarian.net/225370879/mydumper-0.9.1.tar.gz
Resolving launchpadlibrarian.net (launchpadlibrarian.net)... 91.189.89.229, 91.189.89.228
Connecting to launchpadlibrarian.net (launchpadlibrarian.net)|91.189.89.229|:... connected.
HTTP request sent, awaiting response... OK
Length: (43K) [application/x-tar]
Saving to: ‘mydumper-0.9..tar.gz’ %[===========================================================================================================>] , .6KB/s in .6s -- :: (67.6 KB/s) - ‘mydumper-0.9..tar.gz’ saved [/] [root@zlm1 :: ~]
#ls -l
total
-rw-------. root root Jul anaconda-ks.cfg
-rw-r--r-- root root Nov mydumper-0.9..tar.gz
drwxrwxrwx root root Jun : mysqlbinlog_flashback-master
-rwxr-xr-x root root Jun : mysqld.sh
-rwxr-xr-x root root Jun : mysql.sh
-rw-r--r-- root root Jul percona-xtrabackup--2.4.-.el7.x86_64.rpm
drwxrwxrwx root root Jun : pip-10.0.
-rwxr-xr-x root root Jun : pip-10.0..tar
drwxr-xr-x root root Jun : PyMySQL-0.8.
-rwxr-xr-x root root Jun : PyMySQL-0.8..tar
drwxrwxr-x root root Jun : Python-2.6.
-rwxr-xr-x root root Jun : Python-2.6..tar
-rw-r--r-- root root Jun : recover.sh
-rw-r--r-- root root May : rename_tb.sql
drwxrwxrwx root root Jun : setuptools-39.2. [root@zlm1 :: ~]
#gzip -d mydumper-0.9..tar.gz [root@zlm1 :: ~]
#tar -xf mydumper-0.9..tar [root@zlm1 :: ~]
#cd mydumper-0.9. [root@zlm1 :: ~/mydumper-0.9.]
#ls -l
total
-rw-r--r-- root root Nov binlog.c
-rw-r--r-- root root Nov binlog.h
drwxr-xr-x root root Jun : cmake
-rw-r--r-- root root Nov CMakeLists.txt
-rw-r--r-- root root Nov common.h
-rw-r--r-- root root Nov config.h.in
drwxr-xr-x root root Jun : docs
-rw-r--r-- root root Nov g_unix_signal.c
-rw-r--r-- root root Nov g_unix_signal.h
-rw-r--r-- root root Nov mydumper.c
-rw-r--r-- root root Nov mydumper.h
-rw-r--r-- root root Nov myloader.c
-rw-r--r-- root root Nov myloader.h
-rw-r--r-- root root Nov README
-rw-r--r-- root root Nov server_detect.c
-rw-r--r-- root root Nov server_detect.h [root@zlm1 :: ~/mydumper-0.9.]
#cmake .
-bash: cmake: command not found -- There's not cmake package in my system,install cmake first. [root@zlm1 :: ~/mydumper-0.9.]
#yum install cmake
-- Omitted. [root@zlm1 :: ~/mydumper-0.9.]
#cmake .
-- The C compiler identification is GNU 4.8.
-- The CXX compiler identification is GNU 4.8.
-- Check for working C compiler: /usr/bin/cc
-- Check for working C compiler: /usr/bin/cc -- works
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Check for working CXX compiler: /usr/bin/c++
-- Check for working CXX compiler: /usr/bin/c++ -- works
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Using mysql-config: /usr/local/mysql/bin/mysql_config
-- Found MySQL: /usr/local/mysql/include, /usr/local/mysql/lib/libmysqlclient.so;/usr/lib64/libpthread.so;/usr/lib64/libm.so;/usr/lib64/librt.so;/usr/lib64/libdl.so
-- Found ZLIB: /usr/lib64/libz.so (found version "1.2.7")
-- Found PkgConfig: /usr/bin/pkg-config (found version "0.27.1")
-- checking for one of the modules 'glib-2.0'
CMake Error at /usr/share/cmake/Modules/FindPkgConfig.cmake: (message):
None of the required 'glib-2.0' found
Call Stack (most recent call first):
cmake/modules/FindGLIB2.cmake: (pkg_search_module)
CMakeLists.txt: (find_package) -- checking for one of the modules 'gthread-2.0'
CMake Error at /usr/share/cmake/Modules/FindPkgConfig.cmake: (message):
None of the required 'gthread-2.0' found
Call Stack (most recent call first):
cmake/modules/FindGLIB2.cmake: (pkg_search_module)
CMakeLists.txt: (find_package) -- checking for module 'libpcre'
-- found libpcre, version 8.32
-- Found PCRE: /usr/include CMake Warning at docs/CMakeLists.txt: (message):
Unable to find Sphinx documentation generator -- ------------------------------------------------
-- MYSQL_CONFIG = /usr/local/mysql/bin/mysql_config
-- CMAKE_INSTALL_PREFIX = /usr/local
-- BUILD_DOCS = ON
-- WITH_BINLOG = OFF
-- RUN_CPPCHECK = OFF
-- Change a values with: cmake -D<Variable>=<Value>
-- ------------------------------------------------
--
CMake Error: The following variables are used in this project, but they are set to NOTFOUND.
Please set them or make sure they are set and tested correctly in the CMake files:
GLIB2_LIBRARIES (ADVANCED)
linked by target "mydumper" in directory /root/mydumper-0.9.
linked by target "myloader" in directory /root/mydumper-0.9.
GTHREAD2_LIBRARIES (ADVANCED)
linked by target "mydumper" in directory /root/mydumper-0.9.
linked by target "myloader" in directory /root/mydumper-0.9. -- Configuring incomplete, errors occurred!
See also "/root/mydumper-0.9.1/CMakeFiles/CMakeOutput.log". [root@zlm1 :: ~/mydumper-0.9.]
#yum install glib2-devel -- Install glib2-devel package to solve the problem above.
--Omitted. [root@zlm1 :: ~/mydumper-0.9.]
#cmake .
-- Using mysql-config: /usr/local/mysql/bin/mysql_config
-- Found MySQL: /usr/local/mysql/include, /usr/local/mysql/lib/libmysqlclient.so;/usr/lib64/libpthread.so;/usr/lib64/libm.so;/usr/lib64/librt.so;/usr/lib64/libdl.so
-- checking for one of the modules 'glib-2.0'
-- checking for one of the modules 'gthread-2.0' CMake Warning at docs/CMakeLists.txt: (message):
Unable to find Sphinx documentation generator -- ------------------------------------------------
-- MYSQL_CONFIG = /usr/local/mysql/bin/mysql_config
-- CMAKE_INSTALL_PREFIX = /usr/local
-- BUILD_DOCS = ON
-- WITH_BINLOG = OFF
-- RUN_CPPCHECK = OFF
-- Change a values with: cmake -D<Variable>=<Value>
-- ------------------------------------------------
--
-- Configuring done
-- Generating done
-- Build files have been written to: /root/mydumper-0.9. [root@zlm1 :: ~/mydumper-0.9.]
#make
Scanning dependencies of target mydumper
[ %] Building C object CMakeFiles/mydumper.dir/mydumper.c.o
[ %] Building C object CMakeFiles/mydumper.dir/server_detect.c.o
[ %] Building C object CMakeFiles/mydumper.dir/g_unix_signal.c.o
Linking C executable mydumper
[ %] Built target mydumper
Scanning dependencies of target myloader
[%] Building C object CMakeFiles/myloader.dir/myloader.c.o
Linking C executable myloader
[%] Built target myloader [root@zlm1 :: ~/mydumper-0.9.]
#ls -l | grep my
-rwxr-xr-x root root Jun : mydumper -- This can be used to backup db.
-rw-r--r-- root root Nov mydumper.c
-rw-r--r-- root root Nov mydumper.h
-rwxr-xr-x root root Jun : myloader -- This can be used to restore db.
-rw-r--r-- root root Nov myloader.c
-rw-r--r-- root root Nov myloader.hss [root@zlm1 :: ~/mydumper-0.9.]
#mydumper --help
-bash: mydumper: command not found ###Copy
[root@zlm1 :: ~/mydumper-0.9.]
#cp mydumper /usr/bin [root@zlm1 :: ~/mydumper-0.9.]
#cp myloader /usr/bin [root@zlm1 :: ~/mydumper-0.9.]
#mydumper --help -- There's not option to dump binlogs in new version,you cannot find parameter "-b" anymore.
Usage:
mydumper [OPTION?] multi-threaded MySQL dumping Help Options:
-?, --help Show help options Application Options:
-B, --database Database to dump
-T, --tables-list Comma delimited table list to dump (does not exclude regex option)
-o, --outputdir Directory to output files to
-s, --statement-size Attempted size of INSERT statement in bytes, default
-r, --rows Try to split tables into chunks of this many rows. This option turns off --chunk-filesize
-F, --chunk-filesize Split tables into chunks of this output file size. This value is in MB
-c, --compress Compress output files
-e, --build-empty-files Build dump files even if no data available from table
-x, --regex Regular expression for 'db.table' matching
-i, --ignore-engines Comma delimited list of storage engines to ignore
-m, --no-schemas Do not dump table schemas with the data
-d, --no-data Do not dump table data
-G, --triggers Dump triggers
-E, --events Dump events
-R, --routines Dump stored procedures and functions
-k, --no-locks Do not execute the temporary shared read lock. WARNING: This will cause inconsistent backups
--less-locking Minimize locking time on InnoDB tables.
-l, --long-query-guard Set long query timer in seconds, default
-K, --kill-long-queries Kill long running queries (instead of aborting)
-D, --daemon Enable daemon mode
-I, --snapshot-interval Interval between each dump snapshot (in minutes), requires --daemon, default
-L, --logfile Log file name to use, by default stdout is used
--tz-utc SET TIME_ZONE='+00:00' at top of dump to allow dumping of TIMESTAMP data when a server has data in different time zones or data is being moved between servers with different time zones, defaults to on use --skip-tz-utc to disable.
--skip-tz-utc
--use-savepoints Use savepoints to reduce metadata locking issues, needs SUPER privilege
--success-on- Not increment error count and Warning instead of Critical in case of table doesn't exist
--lock-all-tables Use LOCK TABLE for all, instead of FTWRL
-U, --updated-since Use Update_time to dump only tables updated in the last U days
--trx-consistency-only Transactional consistency only
-h, --host The host to connect to
-u, --user Username with privileges to run the dump
-p, --password User password
-P, --port TCP/IP port to connect to
-S, --socket UNIX domain socket file to use for connection
-t, --threads Number of threads to use, default
-C, --compress-protocol Use compression on the MySQL connection
-V, --version Show the program version and exit
-v, --verbose Verbosity of output, = silent, = errors, = warnings, = info, default ###create a big MyISAM table.###
root@localhost:mysql3306.sock [zlm]::>create table test_myisam(
-> id int primary key
-> ) engine=myisam;
Query OK, rows affected (0.00 sec) root@localhost:mysql3306.sock [zlm]::>delimiter $$
root@localhost:mysql3306.sock [zlm]::>create procedure pro_insert (count int)
-> begin
-> declare i int unsigned default ;
-> start transaction;
-> while i < count do
-> insert into test_myisam(id) values(i);
-> set i=i+;
-> end while;
-> commit;
-> end;
-> $$
Query OK, rows affected (0.00 sec) root@localhost:mysql3306.sock [zlm]::>delimiter ;
root@localhost:mysql3306.sock [zlm]::>call pro_insert();
Query OK, rows affected ( min 37.72 sec) root@localhost:mysql3306.sock [zlm]::>select count(*) from test_myisam;
+----------+
| count(*) |
+----------+
| |
+----------+
row in set (0.03 sec) root@localhost:mysql3306.sock [zlm]::>show tables;
+----------------+
| Tables_in_zlm |
+----------------+
| semi_sync_test |
| t1 |
| t2 |
| t3 |
| test |
| test_flashbk |
| test_myisam |
+----------------+
rows in set (0.06 sec) root@localhost:mysql3306.sock [zlm]::>show create table test;
+-------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| Table | Create Table |
+-------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| test | CREATE TABLE `test` (
`id` bigint() NOT NULL AUTO_INCREMENT,
`name` varchar() NOT NULL DEFAULT '',
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT= DEFAULT CHARSET=utf8mb4 |
+-------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
row in set (0.00 sec) ###Generate a backup by threads.###
[root@zlm1 :: ~/mydumper-0.9.]
#mydumper -B zlm -T test,test_myisam -u root -p Passw0rd -h localhost -t -o /data/backup -- -t specify threads(default ) in all. [root@zlm1 :: ~/mydumper-0.9.] ###Check the output file.###
[root@zlm1 :: ~/mydumper-0.9.]
#ls -l /data/backup
total
drwxr-x--- root root Jun : --16_11--
-rw-r--r-- root root Jun : metadata -- It contains time,binlog file & position,GTID informations.
-rw-r--r-- root root Jun : zlm-schema-create.sql -- It contains database structure.
-rw-r--r-- root root Jun : zlm.test_myisam-schema.sql -- It contains table structure.
-rw-r--r-- root root Jun : zlm.test_myisam.sql -- It contains data of MyISAM table "test_myisam".
-rw-r--r-- root root Jun : zlm.test-schema.sql -- It contains table structure.
-rw-r--r-- root root Jun : zlm.test.sql -- It contains data of innodb table "test". ###Check the general log for detail of backup.###
[root@zlm1 :: /data/mysql/mysql3306/data]
#cat zlm1.log --17T16::.634569Z Connect root@localhost on zlm using Socket
--17T16::.634595Z Query SET SESSION wait_timeout =
--17T16::.634670Z Query SET SESSION net_write_timeout =
--17T16::.634819Z Query SHOW PROCESSLIST
--17T16::.634902Z Query FLUSH TABLES WITH READ LOCK -- Begin to generate FTWRL in order to have consistent backup.
--17T16::.634997Z Query START TRANSACTION /*!40108 WITH CONSISTENT SNAPSHOT */ -- create consistent snapshot.
--17T16::.635072Z Query /*!40101 SET NAMES binary*/
--17T16::.635125Z Query SHOW MASTER STATUS
--17T16::.635205Z Query SHOW SLAVE STATUS
--17T16::.636261Z Connect root@localhost on using Socket -- Create sub thread # in backing up.
--17T16::.636392Z Query SET SESSION wait_timeout =
--17T16::.636443Z Query SET SESSION TRANSACTION ISOLATION LEVEL REPEATABLE READ
--17T16::.636479Z Query START TRANSACTION /*!40108 WITH CONSISTENT SNAPSHOT */
--17T16::.636527Z Query /*!40103 SET TIME_ZONE='+00:00' */
--17T16::.636570Z Query /*!40101 SET NAMES binary*/
--17T16::.636913Z Connect root@localhost on using Socket -- Create sub thread # in backing up.
--17T16::.636962Z Query SET SESSION wait_timeout =
--17T16::.637005Z Query SET SESSION TRANSACTION ISOLATION LEVEL REPEATABLE READ
--17T16::.637039Z Query START TRANSACTION /*!40108 WITH CONSISTENT SNAPSHOT */
--17T16::.637084Z Query /*!40103 SET TIME_ZONE='+00:00' */
--17T16::.637123Z Query /*!40101 SET NAMES binary*/
--17T16::.637178Z Init DB zlm
--17T16::.637219Z Query SHOW TABLE STATUS
--17T16::.772453Z Query SHOW CREATE DATABASE `zlm`
--17T16::.772650Z Query SELECT /*!40001 SQL_NO_CACHE */ * FROM `zlm`.`test_myisam`
--17T16::.772927Z Query SELECT /*!40001 SQL_NO_CACHE */ * FROM `zlm`.`test`
--17T16::.848929Z Query SHOW CREATE TABLE `zlm`.`test` -- Get the table structure of "test".
--17T16::.961590Z Query SHOW CREATE TABLE `zlm`.`test_myisam` -- Get the table structure of "test_myisam".
--17T16::.022712Z Query UNLOCK TABLES /* FTWRL */ -- Release table locks after get structure of tables.
--17T16::.022724Z Quit
--17T16::.022812Z Quit
--17T16::.024460Z Quit ###Generate a backup by threads.###
[root@zlm1 :: ~/mydumper-0.9.]
#mydumper -B zlm -T test,test_myisam -u root -p Passw0rd -h localhost -t -o /data/backup [root@zlm1 :: ~/mydumper-0.9.]
# ###Check the general log for detail of backup.###
[root@zlm1 :: /data/mysql/mysql3306/data]
#cat zlm1.log --17T17::.654622Z Connect root@localhost on zlm using Socket
--17T17::.654864Z Query SET SESSION wait_timeout =
--17T17::.654922Z Query SET SESSION net_write_timeout =
--17T17::.655009Z Query SHOW PROCESSLIST
--17T17::.655072Z Query FLUSH TABLES WITH READ LOCK
--17T17::.656485Z Query START TRANSACTION /*!40108 WITH CONSISTENT SNAPSHOT */
--17T17::.656577Z Query /*!40101 SET NAMES binary*/
--17T17::.656744Z Query SHOW MASTER STATUS
--17T17::.656832Z Query SHOW SLAVE STATUS
--17T17::.657303Z Connect root@localhost on using Socket -- Create sub thread # in backing up.
--17T17::.657367Z Query SET SESSION wait_timeout =
--17T17::.657416Z Query SET SESSION TRANSACTION ISOLATION LEVEL REPEATABLE READ
--17T17::.657453Z Query START TRANSACTION /*!40108 WITH CONSISTENT SNAPSHOT */
--17T17::.657503Z Query /*!40103 SET TIME_ZONE='+00:00' */
--17T17::.657547Z Query /*!40101 SET NAMES binary*/
--17T17::.658353Z Connect root@localhost on using Socket -- Create sub thread # in backing up.
--17T17::.658438Z Query SET SESSION wait_timeout =
--17T17::.658485Z Query SET SESSION TRANSACTION ISOLATION LEVEL REPEATABLE READ
--17T17::.658568Z Query START TRANSACTION /*!40108 WITH CONSISTENT SNAPSHOT */
--17T17::.658631Z Query /*!40103 SET TIME_ZONE='+00:00' */
--17T17::.658689Z Query /*!40101 SET NAMES binary*/
--17T17::.659442Z Connect root@localhost on using Socket -- Create sub thread # in backing up.
--17T17::.659541Z Query SET SESSION wait_timeout =
--17T17::.659580Z Query SET SESSION TRANSACTION ISOLATION LEVEL REPEATABLE READ
--17T17::.659581Z Query START TRANSACTION /*!40108 WITH CONSISTENT SNAPSHOT */
--17T17::.659581Z Query /*!40103 SET TIME_ZONE='+00:00' */
--17T17::.659614Z Query /*!40101 SET NAMES binary*/
--17T17::.659992Z Connect root@localhost on using Socket -- Create sub thread # in backing up.
--17T17::.660057Z Query SET SESSION wait_timeout =
--17T17::.660106Z Query SET SESSION TRANSACTION ISOLATION LEVEL REPEATABLE READ
--17T17::.660144Z Query START TRANSACTION /*!40108 WITH CONSISTENT SNAPSHOT */
--17T17::.660193Z Query /*!40103 SET TIME_ZONE='+00:00' */
--17T17::.660236Z Query /*!40101 SET NAMES binary*/
--17T17::.660801Z Init DB zlm
--17T17::.661053Z Query SHOW TABLE STATUS
--17T17::.662581Z Query SHOW CREATE DATABASE `zlm`
--17T17::.662906Z Query SELECT /*!40001 SQL_NO_CACHE */ * FROM `zlm`.`test_myisam`
--17T17::.669514Z Query SELECT /*!40001 SQL_NO_CACHE */ * FROM `zlm`.`test`
--17T17::.674024Z Query SHOW CREATE TABLE `zlm`.`test`
--17T17::.681205Z Query SHOW CREATE TABLE `zlm`.`test_myisam`
--17T17::.548006Z Query UNLOCK TABLES /* FTWRL */
--17T17::.548426Z Quit
--17T17::.548509Z Quit
--17T17::.548552Z Quit
--17T17::.548619Z Quit
--17T17::.549291Z Quit
Summary
  • mydump is a logical backup tool like mysqldump,but more efficient.
  • mydump support mutiple thread backup,which can short your backup time especially when backing up big tables.
  • When backing up operation begins there also a FTWRL to make a consistent backup.

MySQL备份恢复之mydumper的更多相关文章

  1. Mysql 备份恢复之 Mysqldump 工具

    目前正在学习中,看到mysqldump工具导出的数据都是文本形式的,如果是blob或text大对象类型导出的是什么格式的?这个需要后续研究.下面只先总结下简单的. 一.备份1.备份Mysql一个数据库 ...

  2. MySQL备份恢复之Xtrabackup

    Preface       Today,I'm gonna use the Xtrabackup tool to demonstrate the procedure of backing up MyS ...

  3. MySQL备份恢复之mysqldump

      Preface       The day before yesterday,there's a motif about the lock procedure when backing up My ...

  4. mysql备份工具 :mysqldump mydumper Xtrabackup 原理

    备份是数据安全的最后一道防线,对于任何数据丢失的场景,备份虽然不一定能恢复百分之百的数据(取决于备份周期),但至少能将损失降到最低.衡量备份恢复有两个重要的指标:恢复点目标(RPO)和恢复时间目标(R ...

  5. MySQL多线程备份工具:mydumper

    MySQL多线程备份工具:mydumper http://www.orczhou.com/index.php/2011/12/how-to-split-mysqldump-file/ Mydumper ...

  6. MySQL备份还原之一mydumper

    1)源码编译安装 1.下载 mydumper源码 2.解压 [mysql@localhost ~]$ tar -xvf mydumper-0.9.1.tar mydumper-0.9.1/CMakeL ...

  7. MySQL备份迁移之mydumper

    简介 mydumper 是一款开源的 MySQL 逻辑备份工具,主要由 C 语言编写.与 MySQL 自带的 mysqldump 类似,但是 mydumper 更快更高效. mydumper 的一些优 ...

  8. MySQL备份原理详解

    备份是数据安全的最后一道防线,对于任何数据丢失的场景,备份虽然不一定能恢复百分之百的数据(取决于备份周期),但至少能将损失降到最低.衡量备份恢复有两个重要的指标:恢复点目标(RPO)和恢复时间目标(R ...

  9. mysql 备份与还原

    http://dev.yesky.com/281/35291281.shtml 每一种逻辑错误发生的概率都极低,但是当多种可能性叠加的时候,小概率事件就 放大成很大的安全隐患,这时候备份的必要性就凸显 ...

随机推荐

  1. TypeScript 入门笔记

    1.原始数据类型 JavaScript 的类型分为两种:原始数据类型和对象数据类型.原始数据类型包括布尔值.数值.字符串.null.undefined 以及 ES6 中的 Symbol. 前五种数据类 ...

  2. javascript 权威指南

    1.对象 1.1.序列话对象 JSON.stringify() 和 JSON.parse() 用来序列化和还原 javascript 对象. var o = {x:1, y:{z:[false,nul ...

  3. html5格式样式

    <b>        加粗 <b style="font-size: 100px;">大字体</b>

  4. Hive的运算和函数大全

    hive 常用运算 测试各种内置函数的快捷方法: 创建一个 dual 表 create table dual(id string); load 一个文件(只有一行内容:内容为一个空格)到 dual 表 ...

  5. C# 取整问题

    关于C#里的取整问题,有向上和向下两种取整方式[1]向上取整a=1.2345string res = Math.Ceiling(Convert.ToDecimal(a)).ToString();str ...

  6. Oracle的sql语句的两种判断形式

    Oracle的sql语句的两种判断形式 判断当前列同时改动当前列 判断一个情况改动其他值 一类情况详解:实现的是当num这一列的值为3时,就显示好 以此类推 1)case num when 3 the ...

  7. c#MD5加密解密

    MD5的全称是Message-Digest Algorithm 5(信息-摘要算法),在90年代初由MIT Laboratory for Computer Science和RSA Data Secur ...

  8. DataBase Migration 使用笔记

    Add-Migration 新建数据库迁移版本 Update-Database -Verbose 更新到数据库(-Verbose 显示详细信息) Update-Database –TargetMigr ...

  9. dedecms 权重排序问题

    isweight='y' orderway='asc'  orderby='weight'  依次进入根目录>dede 找到打开文件 album_edit.php   //找到更新数据库的SQL ...

  10. CryptoSwift:密码学

    Hash (Digest) MD5 | SHA1 | SHA224 | SHA256 | SHA384 | SHA512 | SHA3 Cyclic Redundancy Check (CRC) CR ...