Home Database Mysql Tutorial Oracle海量数据迁移之使用shell启用多个动态并行

Oracle海量数据迁移之使用shell启用多个动态并行

Jun 07, 2016 pm 04:44 PM

在Oracle数据迁移中,可能有成百上千个表,有些表很大,有些表又很

在Oracle数据迁移中,可能有成百上千个表,有些表很大,有些表又很小。
 如果启用了多个并行的进程,可能会有资源分配上的问题。
 比如下面有10个表,100代表预计的时间为100分钟。
table1  100
 table2  90
 table3  90
 table4  80
 table5  80
 table6  70
 table7  60
 table8  60
 table9  50
 table10 40

如果分为4个进程来并行执行,可能一种比较理想的方案就是
parallel1: table1,table8
 parallel2: table2,table5,table9
 parallel3: table3,table6,table9
 parallel4: table4,table7

但是在实际的执行中,可能因为表的分区,表的数据类型,,表的存储的不同,可能实际的执行时间会有很大的差别,
 可能paralle2,3,4已经执行完了,而parallel1还没有执行完50%。
 这样,table8就一直pending在那了。

 在这样的情况下,可以考虑使用动态并行,就是能够在后台启用一些并行的进程,比如需要4个并行进程,就使用nohup启用4个并行的进程。
 不做具体的数据操作。

parfile=par2_tab_parall.lst
 logfile=`echo $parfile|awk -F. '{print $1}`".log"
 while true
 do
 if [ -f $parfile ]
 then
    tab_exists_flag=`cat $parfile |wc -l`
    if [ ${tab_exists_flag} -eq 0 ]
      then
      sleep 5;
    elif [ ${tab_exists_flag} -gt 0 ]
      then
      tab_name=`cat $parfile`
      ksh appendata.sh $tab_name >> $logfile
      touch ${parfile}.tmp
      mv ${parfile}.tmp ${parfile}
    fi
 fi
 done

我们使用appendata.sh来模拟实现数据的插入,其实不会做数据的真实插入,这是模拟日志的内容。
 
echo $1
 sqlplus -s  n1/n1  set time on
 set timin on
 set pages 0
 select 'insert into '||'$1;' from dual;

select 'commit;' from dual;
 EOF
 if [ $? -eq 0 ]
 then
 echo '' >parallel1.lst
 fi


使用如下的命令来启用一个进程,比如下面的命令启用进程2,如果启用其他的进程,命令类似

nohup ksh par2.sh > par2_tab_parall.log &


只需要在一个文件中放入处理的表名即可。如果是进程2,就在par2_tab_parall.lst中放入表名,假设表为test
 par2_tab_parall.lst
 [ora11g@rac1 parallel]$ cat par2_tab_parall.lst
 test

如果放入表test,之后,就会发现第2个进程就开始处理表test了

 

test
 insert into test;

Elapsed: 00:00:00.00
 commit;

Elapsed: 00:00:00.01

再放入一个表,马上就会发现进程开始处理表tab_test了,如果没有表的时候,它就在后台做sleep工作。
[ora11g@rac1 parallel]$ echo tab_test > par2_tab_parall.lst

tab_test
 insert into tab_test;

Elapsed: 00:00:00.01
 commit;

Elapsed: 00:00:00.00

在CentOS 6.4下安装Oracle 11gR2(x64)

Oracle 11gR2 在VMWare虚拟机中安装步骤

Debian 下 安装 Oracle 11g XE R2

本文永久更新链接地址:

linux

Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn

Hot AI Tools

Undresser.AI Undress

Undresser.AI Undress

AI-powered app for creating realistic nude photos

AI Clothes Remover

AI Clothes Remover

Online AI tool for removing clothes from photos.

Undress AI Tool

Undress AI Tool

Undress images for free

Clothoff.io

Clothoff.io

AI clothes remover

Video Face Swap

Video Face Swap

Swap faces in any video effortlessly with our completely free AI face swap tool!

Hot Tools

Notepad++7.3.1

Notepad++7.3.1

Easy-to-use and free code editor

SublimeText3 Chinese version

SublimeText3 Chinese version

Chinese version, very easy to use

Zend Studio 13.0.1

Zend Studio 13.0.1

Powerful PHP integrated development environment

Dreamweaver CS6

Dreamweaver CS6

Visual web development tools

SublimeText3 Mac version

SublimeText3 Mac version

God-level code editing software (SublimeText3)

When might a full table scan be faster than using an index in MySQL? When might a full table scan be faster than using an index in MySQL? Apr 09, 2025 am 12:05 AM

Full table scanning may be faster in MySQL than using indexes. Specific cases include: 1) the data volume is small; 2) when the query returns a large amount of data; 3) when the index column is not highly selective; 4) when the complex query. By analyzing query plans, optimizing indexes, avoiding over-index and regularly maintaining tables, you can make the best choices in practical applications.

Can I install mysql on Windows 7 Can I install mysql on Windows 7 Apr 08, 2025 pm 03:21 PM

Yes, MySQL can be installed on Windows 7, and although Microsoft has stopped supporting Windows 7, MySQL is still compatible with it. However, the following points should be noted during the installation process: Download the MySQL installer for Windows. Select the appropriate version of MySQL (community or enterprise). Select the appropriate installation directory and character set during the installation process. Set the root user password and keep it properly. Connect to the database for testing. Note the compatibility and security issues on Windows 7, and it is recommended to upgrade to a supported operating system.

Explain InnoDB Full-Text Search capabilities. Explain InnoDB Full-Text Search capabilities. Apr 02, 2025 pm 06:09 PM

InnoDB's full-text search capabilities are very powerful, which can significantly improve database query efficiency and ability to process large amounts of text data. 1) InnoDB implements full-text search through inverted indexing, supporting basic and advanced search queries. 2) Use MATCH and AGAINST keywords to search, support Boolean mode and phrase search. 3) Optimization methods include using word segmentation technology, periodic rebuilding of indexes and adjusting cache size to improve performance and accuracy.

Difference between clustered index and non-clustered index (secondary index) in InnoDB. Difference between clustered index and non-clustered index (secondary index) in InnoDB. Apr 02, 2025 pm 06:25 PM

The difference between clustered index and non-clustered index is: 1. Clustered index stores data rows in the index structure, which is suitable for querying by primary key and range. 2. The non-clustered index stores index key values ​​and pointers to data rows, and is suitable for non-primary key column queries.

MySQL: Simple Concepts for Easy Learning MySQL: Simple Concepts for Easy Learning Apr 10, 2025 am 09:29 AM

MySQL is an open source relational database management system. 1) Create database and tables: Use the CREATEDATABASE and CREATETABLE commands. 2) Basic operations: INSERT, UPDATE, DELETE and SELECT. 3) Advanced operations: JOIN, subquery and transaction processing. 4) Debugging skills: Check syntax, data type and permissions. 5) Optimization suggestions: Use indexes, avoid SELECT* and use transactions.

Can mysql and mariadb coexist Can mysql and mariadb coexist Apr 08, 2025 pm 02:27 PM

MySQL and MariaDB can coexist, but need to be configured with caution. The key is to allocate different port numbers and data directories to each database, and adjust parameters such as memory allocation and cache size. Connection pooling, application configuration, and version differences also need to be considered and need to be carefully tested and planned to avoid pitfalls. Running two databases simultaneously can cause performance problems in situations where resources are limited.

The relationship between mysql user and database The relationship between mysql user and database Apr 08, 2025 pm 07:15 PM

In MySQL database, the relationship between the user and the database is defined by permissions and tables. The user has a username and password to access the database. Permissions are granted through the GRANT command, while the table is created by the CREATE TABLE command. To establish a relationship between a user and a database, you need to create a database, create a user, and then grant permissions.

Explain different types of MySQL indexes (B-Tree, Hash, Full-text, Spatial). Explain different types of MySQL indexes (B-Tree, Hash, Full-text, Spatial). Apr 02, 2025 pm 07:05 PM

MySQL supports four index types: B-Tree, Hash, Full-text, and Spatial. 1.B-Tree index is suitable for equal value search, range query and sorting. 2. Hash index is suitable for equal value searches, but does not support range query and sorting. 3. Full-text index is used for full-text search and is suitable for processing large amounts of text data. 4. Spatial index is used for geospatial data query and is suitable for GIS applications.

See all articles