how to make SCP work faster?

How to Copy Files Across a Network/Internet in UNIX/LINUX (Redhat, Debian, FreeBSD, etc) - scp tar rsync

One of the many advantages of Linux/UNIX is how many ways you can do one thing. This tutorial is going to show you some of the many ways you can transfer files over a network connection.
In this article/tutorial we will cover rsync, scp, and tar. Please note that there are many other ways these are just some of the more common ones. The methods covered assume that SSH is used in all sessions. These methods are all much more secure and reliable than using rcp or ftp. This tutorial is a great alternative for those looking for an FTP alterative to transferring files over a network.

scp
scp or secure copy is probably the easiest of all the methods, its is designed as a replacement for rcp, which was a quick copy of cp with network functionality.
scp syntax
scp [-Cr] /some/file [ more ... ] host.name:/destination/file
-or-
scp [-Cr] [[user@]host1:]file1 [ more ... ] [[user@]host2:]file2
Before scp does any copying it first connects via ssh. Unless proper keys are in place, then you will be asked for usernames. You can test if this is working by using ssh -v hostname
The -r switch is used when you want to recursively go through directories. Please note you must specify the source file as a directory for this to work.
scp encrypts data over your network connection, but by using the -C switch you can compress the data before it goes over the network. This can significantly decrease the time it takes to copy large files.
Tip: By default scp uses 3DES encryption algorithm, all encryption algorithms are slow, but some are faster than others. Using -c blowfish can speed things up.
What scp shouldn't be used for:
1. When you are copying more than a few files, as scp spawns a new process for each file and can be quite slow and resource intensive when copying a large number of files.
2. When using the -r switch, scp does not know about symbolic links and will blindly follow them, even if it has already made a copy of the file. The can lead to scp copying an infinite amount of data and can easily fill up your hard disk, so be careful.

rsync
rsync has very similar syntax to scp:
rsync -e ssh [-avz] /some/file [ more ... ] host.name:/destination/file

-or-
rsync -ave ssh source.server:/path/to/source /destination/dir
rsync's speciality lies in its ability to analyse files and only copy the changes made to files rather than all files. This can lead to enormous improvements when copying a directory tree a second time.
Switches:
-a Archive mode, most likely you should always keep this on. Preserves file permissions and does not follow symlinks.
-v Verbose, lists files being copied
-z Enable compression, this will compress each file as it gets sent over the pipe. This can greatly decrease time depending on what sort files you are copying.
-e ssh Uses ssh as the transport, this should always be specified.
Disadvantages of using rsync:
1. Picky syntax, use of trailing slashes can be confusing.
2. Have to remember that you are using ssh.
3. rsync is not installed on all computers.

tar
tar is usually used for achiving applications, but what we are going to do in this case is tar it then pipe it over an ssh connection. tar handles large file trees quite well and preserves all file permissions, etc, including those UNIX systems which use ACLs, and works quite well with symlinks.
the syntax is slightly different as we are piping it to ssh:
tar -cf - /some/file | ssh host.name tar -xf - -C /destination
-or with compression-
tar -czf - /some/file | ssh host.name tar -xzf - -C /destination

For HP-UX: 
tar -cf - . | ssh user@target-host  "cd ; tar -xf  -"


Switch -c for tar creates an archive and -f which tells tar to send the new archive to stdout.
The second tar command uses the -C switch which changes directory on the target host. It takes the input from stdin. The -x switch extracts the archive.
The second way of doing the transfer over a network is with the -z option, which compresses the stream, decreasing time it will take to transfer over the network.
Some people may ask why tar is used, this is great for large file trees, as it is just streaming the data from one host to another and not having to do intense operations with file trees.
If using the -v (verbose) switch, be sure only to include it on the second tar command, otherwise you will see double output.
Using tar and piping can also be a great way to transfer files locally to be sure that file permissions are kept correctly:
tar cf - /some/file | (cd /some/file; tar xf -)
This may seem like a long command, but it is great for making sure all file permissions are kept in tact. What it is doing is streaming the files in a sub-shell and then untarring them in the target directory. Please note that the -z command should not be used for local files and no perfomance increase will be visible as overhead processing (CPU) will be evident, and will slow down the copy.
Why tar shouldn't be used:
1. The syntax can be hard to remember
2. It's not as quick as to type scp for a small number of files
3. rsync will beat it hands down for a tree of files that already exist in the destination.
There are several other ways of copying over a network, such as FTP, NAS, and NFS but these all requre specialised software installed on either the receiving or sending end, and hence are not as useful as the above commands.

Apps DBA Interview questions.

1.    What is the use of shared appl_top? Let's assume I have shared my appl_top across 4 nodes. How many times I have to apply  ADpatch ?

2.  How to re-create corrupted oraInventory ?

3. How do I run autoconfig in test mode ( without changing any files and I want to know what will happen, if I run autoconfig) ?

4.  What's the purpose of providing 0 and Y, while changing passwords using FNDCPASS ?

5.  What happen if someone deleted FNDLIBR? how to recover ?

6.  What are .ldf and .ltc files?

7.  How to find out the parameters supplied to JVM ?

8.  How to find out the java Classpath in oracle apps ?

9.  How to troubleshoot java.lang.NoClassDefFound error ?

10. What could be the reason for  "network adapter unable to connect to db" error while doing post clone of appsTier ?

11. What is the purpose of adgendbc.sh file? Syntax for adgendbc.sh ? where it is located?

12. How to fix UTL_FILE error while doing autoconfig?

13. What's the purpose of adbldxml ? Syntax and location.

14. How to find out the status of ICM ? Which script is used for that ?

15. What are the two values given at "compile_all=?" while compiling forms ? what's the significance of each value ?


post your answers quoting the question number.

I will be updating this thread with more questions.

Regards,
Sundar K

State of processes and sessions parameters after clone.

After doing post clone of Oracle EBS 11i/R12, the processes and sessions parameters are re-set to default. That is processes=200 and sessions=300.

In particular to R12.1 instance, 200 number of processes are not enough for a single user to submit a few requests.  The requests will throw errors which are not related to "max processes reached". You may find it on alert_log, but if you are monitoring concurrent managers and it's logs then, I bet you won't find anything related to max processes.

It must be a practice to increase the processes and sessions parameters on a newly cloned EBS or set as equal as to that of the source EBS.

Otherwise, concurrent managers will keep you on running on toe and you won't get any clue until, you saw the alert log.

Find OAM verion (R12.1)

 To find the version of OAM

1.  Log-in to EBS with system administrator responsibility and click on Dashboard.
2.  On the Lower-Right corner you may find a link to OAM version. Click on that.


3.  Here comes the OAM version.

FND_STATS don't consider temp tables

Yesterday, I had to run FND_STATS.gather_schema_stats for XX schema, manually. Because, it was not registered with Oracle Apps.

Upon querying the last_analyzed column of dba_tables, I found some of the tables from XX schema are not analyzed and they are temporary tables (temporary column=Y).


Finding:
FND_STATS don't analyze temp tables.

strange phenomenon of rman

While executing an RMAN script from catalog database, rman shows file system error and doesn't store backups to the file location specified in the script.

I used two separate machines for doing this rman exercise. One m/c is configured to run catalog database and the other one is my target database.

The file location specified in the backup script is in catalog db machine,  and the script is executed from catalog db. But, rman always looks for the same location on the target db machine.

Anyone has any clue about this ?

opmn component failed to start (AS 10.1.3.x)

Recently I had a problem on starting Middle Tier processes of Oracle AS 10.1.3.x.

$ opmnctl startproc ias-component=OC4J:oc4j_soa
opmnctl: starting opmn managed processes...
================================================================================
opmn id=prima.abits.com:6201
    No processes or applications match the specified configuration.

opmn.log shows....

10/05/17 11:00:10 [pm-process] Starting Process: default_group~oc4j_soa~default_group~1 (376439197:0)
10/05/17 11:00:57 [libopmnoc4j] Host and Port information for port type jms not sent by the OC4J process
10/05/17 11:00:57 [libopmnoc4j] WARNING: OC4J did not send the protocol value for port id: jms
10/05/17 11:00:57 [libopmnoc4j] Port information in the ONS notification is incorrect for proc: 376439197. Some of the reason
s for the failure are:
 1. ajp, rmi and jms ports could not be bound by the process.
 2. If a port value for a certain port ID is handed by OPMN to the OC4J process and this value is not returned back in the ON
S notifications. For example, this can happen for certain bad JGroups related configurations.
10/05/17 11:00:57 [libopmnoc4j] Process Start Error: default_group~oc4j_soa~default_group~1 (376439197:7849)
10/05/17 11:00:58 [pm-process] Stopping Process: default_group~oc4j_soa~default_group~1 (376439197:7849)
10/05/17 11:00:58 [libopmnoc4j] Process Stop Error: default_group~oc4j_soa~default_group~1 (376439197:7849)
10/05/17 11:00:58 [libopmnoc4j] Failed to construct stop command for proc: 376439197
10/05/17 11:00:58 [libopmnoc4j] Forcefully Terminating Process: default_group~oc4j_soa~default_group~1 (376439197:7849)

Haven't got any clue with this log, I searched on OTN.

Mr. Sameer.h  has posted a nice message on this problem at this URL: http://forums.oracle.com/forums/thread.jspa?threadID=619852

This solved my prob.

The solution is:
Stop opmnctl processes
delete jms.state file under $OH/j2ee\home\persistence\home_default_group_1/
start opmnctl processes again.

It worked like a charm.

Adding/removing report server in 10g Application Server

To delete the Report server you have to follow some steps:

1. Stop opmn processes.
2. Stop EM console
3. Take a backup of opmn.xml
4. Open opmn.xml. There must be an entry related to your reports server.
    Carefully delete that whole tag.
5. Then do "opmnctl validate" to validate your opmn.xml.
6. Take a backup of targets.xml.
7. Open targets.xml.. There must be a entry for your reports server in that.
    Delete that whole tag from there.
8. Start opmn processes.
9. Start EM Console.

To add new reports server:
1. Adding a new report server with the name my_report_server
   $ rwserver.sh server=my_report_server batch=yes

2. Register with OEM and OPMN
   $ addNewServerTarget my_report_server

3. Open configuration file created in the name of new report server
   $ vi $ORACLE_HOME/reports/conf/my_report_server.conf

4. Change SourceDir and tempDir values to the actual one.

5. Start newly added report server process.

adapcctl.sh: exiting with status 204

On a new VIS R12.1 installation, the OHS (oracle http server) failed to start and give status 204.

Upon querying the status of opmn managed processes with adopmnctl.sh, the following status is shown:

Processes in Instance:
---------------------------------+--------------------+---------+---------
ias-component                    | process-type       |     pid | status
---------------------------------+--------------------+---------+---------
OC4JGroup:default_group          | OC4J:oafm          |    9713 | Alive
OC4JGroup:default_group          | OC4J:forms         |    9648 | Alive
OC4JGroup:default_group          | OC4J:oacore        |    9570 | Alive
HTTP_Server                      | HTTP_Server        |     N/A | Down




On  driilling through the http server logfile on $INST_TOP/logs/ora/10.1.3/opmn/HTTP_Server~1.log

found some error like this:

10.1.3/Apache/Apache/bin/httpd: error while loading shared libraries: libdb.so.2: cannot open sh
ared object file: No such file or directory

I thought this could be due to some link files, not properly linked on /usr/lib or /lib folders.
I searched for link file libdb.so.2 on /usr/lib and /lib folders. But nothing found.
So, I  went on creating a link file " libdb.so.2" on both the folders.

Now, I restarted the OHS.

This time it gave the same 204 status. Http log shows,

Cannot load $IAS_ORACLE_HOME/Apache/Apache/libexec/mod_ossl.so into server: $IAS_ORACLE_HOME/Apache/Apache/libexec/mod_ossl.so: undefined symbol: dbm_firstkey

Now, the situation got really worse. I googled a lot, but found nothing related.

Finally, I checked for the pre-requisite rpm one-by-one. I referred Metalink doc:607883 once again.
 There I got the fix.

I missed to apply patch 607883. It was clearly mentioned on this doc, that this patch would fix an issue with the Oracle HTTP Server (missing libdb.so.2)

Applied the patch and this time OHS started fine.

Disabling Single Sign-On on Report Server

While accessing a 10g Application Server report, the user need to log-in through Single Sign-on process.

Though this is an additional security feature, someone may feel this annoying.

In this Post, I'll explain, how to avoid single sign-on process while accessing 10g AS reports.

Step 1: Disable Single Sign-on:
Uncomment the SINGLESIGNON parameter in the Reports Servlet configuration file (rwservlet.properties) and set it to "NO". This file is located in $ORACLE_HOME/reports/conf directory.

Note: The SINGLESIGNON value is usually commented out after installation, but the default value is YES.

Step 2: Disable Reports Server Security:

Though, the single sign-on is disabled, we need to sign-on at "reports server security" process, in order to access the reports.
To disable this, the security element in the Reports Server configuration file, ($ORACLE_HOME/reports/conf/servername.conf) must be commented out.


The default value would be like this:

"security id="rwSec" class="oracle.reports.server.RWSecurity>"
"!--property name="securityUserid" value="portal_id/portal_password@portal_schema" 
confidential="yes" encrypted="no"-->"
"property name="oidEntity" value="%REPORTS_OID_ENTITY%" confidential="yes" 
encrypted="no"/>"
 
"/security>"


Commenting out the above security element will disable the Reports server security process.

Step 3: Restart the report server opmn process.

That's all...

You won't get any annoying screen, asking for username and passwords.

But remember, you are reducing an additional security feature.

 SPACE MANAGEMENT :: 1. Table space usuage: ============== SELECT tablespaces.tablespace_name,          allocated.total_alloc allocated_mb, ...