How to manage schema copies between Prod/Test-Integration/Development and Training
From OraWiki
Contents |
Author
| (c) 2007 by Steven of Oz | ||
|---|---|---|
| Author | ||
| Name | Gerald Roehrbein | |
| http | www.OraForecast.com | |
| Gerald.Roehrbein@OraForecast.com | ||
| Release | 1.0 Available End of October 2009 at this page | |
| Created | 2009.08.31 | |
| Last update | 2009.11.22 | |
| Changes | Started article | |
| Estimated duration of installation | up to several hours | |
| License | Commercial/ Demo license for 4 instances | |
Purpose
To have a generic tool supporting common platforms (Windows, Linux, iPhone) for all of the standard jobs in large datacenters:
- Full featured Master Data Management (MDM) as required by admins and managers including spare coded associative matrixes for project, document management, change and incident management
- Full featured troubleshooting as required by admin
- Fully implemented functions for standard work like schema copies, recovery using RMAN, tablespace management
- Fully implemented functions for performance management based upon statistics, gathering proprietary statistic data and management of STATSPACK/ AWR and ADDM
- Full featured functions to locate source of a problem as fast as possible and address it to the correct teams
- Full support of SSH, SCP, Schema Copies, Backup and Recovery and Tablespace Management as required on call
The idea of fdbsnc is to be small, fast and as powerful as required for troubleshooting because fdbsync should also run at an iPhone.
The idea of fdbsync is to make expensive work in the expensive western economy less expensive and give the people resources to work on really overvalue/surplus topics (resource wastage of hardware and licenses) for their Companies.
fdbsync is a software developed by OraForecast.com for companies which uses multiple stages for production, test and integration, development and training having the requirements to move data from production to the other stages.
Our schema copy solution is written to have a fast solution to define schema copies with the ability to store those by user, unit and project.
The name of the product is fdbsync (fast database sync) for Oracle RDBMS.
fdbsync is designed for LAN/WAN environments with a large number of databases to keep in sync using RSA/DSA authentication with or without public keys. fdbsync provide fast export and import strategies, fast data transmission in a WAN using the available bandwidth as best as possible.
fdbsync offers:
- Push and pop mode and relaying
- Parallel copying
- Multiple user management
- Automated scheduling
- Easy to use installation and configuration assistent
- SSH 2.0 support
- Logging of all schema copy executions and reporting
- Full compatible to Fast Small Oracle Remote Analyzer (fsora) and integration of fsora (admin option to tune and monitor performance)
- AWR and ADDM reporting and graphical analysis of AWR/ ADDM (admin option to tune and monitor performance)
- Graphical analysis of trace files (admin option to tune and monitor performance)
- Performance forecast (admin option)
- PUTTY replacement for DBA's (highly integrated SSH shell for Oracle DBA's) (admin option)
- SSH Port forwarding/tunneling (X-Windows and TNS) for unlimited number of hops
- Full encryption. All data stored in the repository is full DES encrypted to have best security.
- Individual DES master key. (option)
- Ability to use external master data of already existing documentation databases accessible via DB link,VIEW, CSVimport, TNSNAMES.ORA import, LDAP/X.500 connection
- OLAP style document management system to store documentation related to all objects managed by fdbsync into the database based upon the idea of spare coded associative matrixes
Actual screenshot of master data management for User data.
Remark to the image and fdbsync layout:
It is planned as an On Call (Rufbereitschaft) tool for Oracle DBA's. So it have to work from a notebook as well as if using an iPhone. Since the display of the iPhone is a small one the layout of fdbsync is not choosen for high end graphics. That's cool or isn't it?
The management of the master data is just intuitive. For example, if selected an user and than clicked to the tab Log book or Documentation than you will see the log entries and docs of that user. Thats same if selected a server, database instance or third tier application. You will allways see what fits to the last choosen object. So for example if you select a database instance and click on server or hardware you will see information of the database instances hardware or it's logs or docs or whatever. In my opinion: That's really cool especially On call because the tool also provide one click to destination system which have trouble and the full support of fsora (fast small oracle remote analyzer) without any additional installation because the SSH terminal detects when you type fsora and treat this as internal command and it is only required to have one simple view at the master data of a server to see if if system really is On call and it's SLA's (Service Level Agreements) fit or not. That's also cool. Next point: It is possible to store booking numbers to the objects (SAP style) so you always know where you can charge your work. The next cool thing implemented is Easy check. This means that a DBA have just to select a server, database instance or whatever and than he or she will see whats going on: Network problem, OS not available, database listener not available, database not available and it will be visible in something which look like a tree view of a project with colored lines and icons. That's cool too.
Image above shows the tree view. fdbsync allows to show all of the dependencies of your data center by contracts/projects at all interesting levels. You wanna know which is the RMAN backup catalog of you database instances? Which nodes are at a specific RAC and what's the configuration of the SAP tier in this special project? You are "on call" and have to fix a problem and have start a SSH shell to access the server directly? A restore of the database using RMAN is required and there are only a few colleagues knowing the media management layer configuration and the catalog credentials? You have to increase the size of some datafiles within an ASM instance?
The tree view above is designed to be fast also if you would use it in a slow ISDN WAN because it fetches only the data you want to see. It can deal with masses of datacenters, projects and so on. Wrote a testcase for that. It's just a stupid idea to fetch everything into such a tree even those data the user will never touch.
Remark to the tree view: It is planned to have two trees at this tab dialog to manage the datacenter using drag and drop and have a professional interface to assign a server to a new project or add a new server to an existing project and so on.
The detail window of the database instance from the tree window example above:
Well: If your Company would use fdbsync than you can do this and must not search for docs or ask some people. fdbysnc will also be able to learn Multi dimensional endless ring list by itself. Because I will implement search strategies I allways use by myself to fix problems.
Sounds a lot of work. Really. But the key of all is the master data management. Without a valid master data management all of this is not worth a penny. To avoid too much work I will implement a function which is able to read a TNSNAMES.ORA (I already implemented this in PHP because I started most of the work related to FDBSYNC in PHP and C/C++ years ago but now I made the decision to implement everyhing in Java) and use this file to create servers, instances in the fdbsync database. Nevertheless it makes sense to assign them admins and status and so on.
fdbsync unique parallel copying feature allows to sync a training database with a 50G production database in less than 5 hours in a WAN which normally takes in some cases up to 3 days work of a DBA which is paid 90€ per hour. If a projects setup is perfect than it takes just the time to define the schedule and fdbsync will handle everything as efficient and fast as possible because fdbsync is defined as an expert system with a lot of artificial intelligence to handle the job.
The multi user/client functionality of fdbsync is designed to allow an expert/ database admin to setup a schema copy job and to assign a project to a user able to schedule projects execution but not to see any part of the process because the complete communication between all systems is full encrypted and not shown to the user.
The implemented performance features give the ability to optimize the whole schema copy process because they give a DBA full information of the process and in fact the ability to analyze almost any performance problem not only related to schema copies.
The SSH Port forwarding/tunneling feature will give you the ability to define for all of your database servers an automated tunneling of the X-Windows and Oracle TNS protocol via an unlimited number of hops. This means that fdbsync must not connect direct to an Oracle database listener but can build a tunnel to the listener. It tunnels automatically for example Port 1521 of the Oracle listener at a server you normally reach after opening a SSH session to server S1, than an additional SSH session from server S1 to server S2 and so on. Today a DBA always have to define the port forwarding strategies to access the database for example by using TORA or TOAD or SQL*Plus. fdbsync tunnels port 8090/8091 at localhost for utility access to source/destination systems.
fdbsync's encryption allows to store all of the relevant data (usernames, password, RSA/DSA key files) 100% secure in a database. Nobody will be able to read the data stored in the fdbsync repository database because of an individual unique DES key for your company and usage of a proprietary encryption called LB1502.
Image below shows the features of fdbsync in a typical LAN/WAN environment:
fdbsync was designed to be started at a management system. All of the schema copy jobs are stored in a repository accessible via TNS protocol. fdbsync can handle schema copies at:
- One servers hardware hosting different database instances or from one schema at a database instance to a different schema
- Two servers in push or pop mode. This means that the complete export/import process runs on either the source or the destination system
- Dedicated mode. This means that data will be exported at source, copied via SSH to destination and imported at the destination system. (WAN with multiple data centers world wide)
- If there is no SSH connection between source and destination or not enough system resources than fdbsync can use a maintenance server for the temporary required files
The master data management offers to manage locations (data centers), units, persons (with hirarchy and relation to SAP data like PSP and costcenter), servers (including clusters), databases (including clusters and any kind of database), thir tier systems (like SAP, Remedy, Apache, UC4) and to create a clustered structure from the data in a tree view. Especially the tree view with relations to all of the dependencies like persons, phone number and so on will help to document and understand complex systems.
fdbsync is written in the Java language and available as applet and application.
Using fdbsync a Company is also able to consolidate masses of small or mid range databases at one Oracle instance. The consolidation process will be fast and very efficient if using fdbsync.
Pricing
We will offer only a per managed instance license, a bundle for small/mid size Companies and a license for huge data centers . Since schema copies takes a lot of time and are very expensive because they bind staff resources for hours or days our pricing model is:
- Free for IT freelancers working as a DBA for one active fdbsync client.
- 100,00€ per managed project (one source and one destination server)
- 2.000,00€ for 5 users and 10 projects
- 100.000,00€ for an Enterprise license (unlimited users and projects)
Just ask our sales representative at OraForecast.com for special offers. The first 5 orders will get a rebate of 50 percent.
Installation
Download and extract the tarball of fdbsync to your site. You can just extract the tarball in a local directory to have single user installation or you can extract it on a WebServer directory accessible by "http://www.myserver.com/fdbsync . The alias fdbsync should point to the wwww directory of fdbsync. This give users the ability to download and install fdbsync.
For normal users (instead of superuser) it is required to setup the SSH2 configuration in the fdbsync.properties file located in the root directory of fdbsync. It is also possible to assign a private key to a project. If none is defined for a project than the one defined in the property files is used.
SSH
fdbsync offers SSH private/public key authentication.
The SSH algorithm is:
- 1. If there is a key defined in the property file than try this
- 2. If there is a key defined for the user stored inside or outside the database than try this key
- 3. If there is a key defined for the server than try this
If there are no keys defined than fdbsync tries to use the user credentials (name and password) without a key.
The password set for a user or a server is used if there is a private key as the password for the key if there is no key defined than fdbsync uses these credentials for a normal SSH login.
Since it is possible to store SSH keys in the database it will be possible that a different user could use the key implicit if the user starts for example a schema sync project. But: The keys are read encrypted from the database, they will be decrypted in the RAM and used only for a project a different user had designed. There is NO WAY to store a decrypted key saved into the fdbsync database to a filesystem.
Linux
Sample fdbsync.properties SSH setup for public key authentication:
#/* properties updated */ #Sun May 14 17:56:23 CEST 2006 knownHostPath=/home/<user>/.ssh/known_hosts idDSAPath =/home/<user>/.ssh/id_dsa idRSAPath =/home/<user>/.ssh/id_rsa
Windooze
Sample fdbsync.properties SSH setup for public key authentication:
#/* properties updated */ #Sun May 14 17:56:23 CEST 2006 knownHostPath=c:\\tmp\\known_hosts idDSAPath =c:\\tmp\\privateDSAkey.pkk idRSAPath =c:\\tmp\\privateRSAkey.pkk
Key File
I've implemented an encrypted key file for company specific data. The property file only contains the password which is required to decrypt the key file. The encrypted key file contains for example data like:
company=Your company; features=1101-0011-0001-0000; deskey=Your Companies DES password; valid=01.01.2011; superuser=superuser; superpass=ceHU114OoDo=; users=0; projects=0; systempass=970dqP7gcDs=;
To decrypt the file it is required to have LB1502 algorithm and the valid password and a special key hard coded to fdbsync and which will be different for each customer bought our software. In my opinion this is just safe but it required to have a very well designed security strategy at OraForecast.com.
Usage
Common
fdbsync support all Java compatible systems. The published preliminary releases will only contain built in solutions for Windooze and Linux for example related to the file viewers. For example it is possible that one user run fdbsync at a Windows client and store documentation to the fdbsync database using Windows path name (for example: c:\temp\autoexec.bat) another user using a Linux systems want to view the document but the pathnames are invalid for Linux. fdbsync detects this and replaces the path with the valid Linux /tmp/autoexec.bat. This works also vice versa.
Linux
The current development is done at a Ubuntu system. The deployment tarball contains a shell script called fdbsync.sh. All a LINUX user have to do is to extract the tarball to his favorite directory and than double click at fdbsync.sh.
If this will not work than please write a note via e-mail.
Windooze
Written a Windows start script as an add on for the current deployment of preliminary release for those who want to run the demo.
Save the code below to the directory above the bin directory of fdbsync.class as fdbsync.cmd and change variable INSTALL to the deploy directory. Than you can run fdbsync in a Windooze based environment using fdbsync.cmd.
Future releases will contain fdbsync.cmd in the deployment tarball.
fdbsync.cmd:
@echo off echo Starting fdbsync... echo Take some time because of database connect... echo (c)2009 Gerald Roehrbein, OraForecast.com rem Updated 20091027 11:11PM rem ******************************* rem *** Set path to Oracle home rem *** Set path to Oracle JRE rem *** Set path to Acrobat reader rem *** Set path to Toad rem ******************************* set ORACLE_HOME=C:\oracle\client\11.1.0 set ORACLE_JRE=C:\Program Files\Oracle\jre\1.1.7\bin set ACROBAT=C:\Program Files\Adobe\Reader 8.0\Reader set TOAD=c:\Program Files\Quest Software\Toad for Oracle set PATH=%ORACLE_HOME%\bin;%ORACLE_JRE%;%ACROBAT%;%TOAD%;%PATH% set INSTALL=D:\Documents and Settings\groehrbe\workspace\fdbsync set JCONSOLE=-Dcom.sun.management.jmxremote -Dcom.sun.management.jmxremote.port=8080 -Dcom.sun.management.jmxremote.authenticate=false -Dcom.sun.management.jmxremote.ssl=false set PROFILER4J=-javaagent:"%INSTALL%\jar\agent.jar=waitconn=false,verbosity=1" set CLASSPATH=%INSTALL%\bin;%INSTALL%\jar\ganymed-ssh2-build210.jar;%INSTALL%\jar\ojdbc5.jar;%INSTALL%\jar\swt.jar;%INSTALL%\jar\agent.jar :restart java %JCONSOLE% %PROFILER4J% fdbsync if ERRORLEVEL 2 goto restart if ERRORLEVEL 0 echo Bye folks...
Recommendations
Example(s)
Download preliminary release to see the dialogs and some of the features.
Security related issues
Since the repository database contain a lot of very important and secure data all of the security related data is encrypted by OraForecast.com developed LB1502 encryption. In my opinion there is no way to decrypt data encrypted by LB1502 using a third party tool.
I published the idea of LB1502 in the early nineties at Düsseldorf Disaster BBS.
LB1502 uses a random number generator configured by a given password (length and signs). The encryption is done using some arithmetic (math) with the data using different dynamically generated functions and a random based shaker which means that data which have to be encrypted is resorted randomly. I hope that there is no way to have some reverse engineering of the .class files.
One part of the safety of LB1502 is actual that nobody knows the way LB1502 works. That's somehow like security by obscurity but using RSA/DSA/DES is somehow like security by complexity which means that it take only some computing power to crack password and key but it is not impossible.
The commercial release will use a C LB1502 variant with self modifying code. In my opinion this will make reverse engineering of the LB1502 very difficult because it's only possible to see the real code during runtime of the functions. The encryption and decryption functions are never called during compile time. This makes it really difficult to understand the way LB1502 works even by hackers.
Nevertheless it is just simple to crack RSA/DSA encryption using brute force attack. Decryption of LB1502 is much more complicated because I will never publish the code of LB1502. There is always a simple way to crack everything using brute force if the algorithm is well known.
How to make this feature as secure as possible
- Write a description or create a link to a discussion board. Please do not start discussion using a Wiki's page!
Download
2009.11.22 NEW DEMO VERSION
- TNS IMPORT
- Master data modules UNITS, USERS, OS, DB, THIRD TIER, HARDWARE, CONTRACTS and BACKUP
- New database schema installer with storage options for data, index and LOB storage
- Partial working tree view for visualizing a datacenter
Remark: The schema installer seems not to work 100% perfect. It is probably required to drop schema and install it twice. After install stop fdbsync and than restart application.
DO NOT STORE TOO MUCH DATA TO THE DEMO'S. I expect first release of fdbsync end of October 2009 (postponed to January 2010). After I've published the first release all future updates will be real updates which means that you will not loose any data you already stored in the fdbsync database.
Source code of this extension
- No, nay, never published, top secret
- 2009.09.10
Since I will not publish source code of FDBSYNC I will have to rewrite some parts of the code by myself because some of the libraries based upon GPL 2.0. This will delay the distribution of the first release.
- 2009.10.26
Consider to publish source code of fdbsync but not for the whole application. Especially the encryption module and the used matrix based coding for the tree views will never been published.
The tree is just simple designed. I use only two three dimensional martixes which contain SQL's and values. For that it was required to rewrite some old "C" functions like "sprintf".
Example (simple JAVA example to explain the idea):
String [] sql={"select * from %s where %s=%s"}
String [][] params={{"dba_tables","upper(table_name)","'DBA_SEGMENTS'"}}
execSql(sprintf(sql[0],params[0]);
The indexes are just those of the leaves in the tree (for example: select user for hardware). So the code is just to create the indexes for the arrays from the tree and than execute proper SQL. Great? Think so.
So that's just a few lines of code to solve a complex problem and manage such a complex tree which is based upon a lot of exceptions. To code a MS-Windows Explorer is, compared with the tree presented here, just simple.
Below code of Java sprintf. First function can deal with a variable number of arguments and second one with a string array of variable number. Only implemented string replacement and no formating. Nevertheless it's all required for the code above.
(Dirty code...)
public String sprintf(String fmt, List args)
{
String t=fmt;
String retval="";
int cnt=0;
while ( cnt<args.size())
{
retval+=t.substring(0, t.indexOf("%s"));
retval+=args.get(cnt++);
if (! t.contains("%s")) break;
t=t.substring(t.indexOf("%s")+2, t.length());
}
retval+=t;
return retval;
}
public String sprintf(String fmt, String [] args)
{
String t=fmt;
String retval="";
int cnt=0;
while ( cnt<args.length)
{
if (! t.contains("%s")) break;
retval+=t.substring(0, t.indexOf("%s"));
retval+=args[cnt];
cnt++;
if (! t.contains("%s")) break;
t=t.substring(t.indexOf("%s")+2, t.length());
}
retval+=t;
return retval;
}
Remark: I read at the WEB that "C" sprintf is very strange to handle. I uses functions like sprintf since mid of the eighties with FORTRAN and C/C++ and I never had a problem using these functions and in my opinion only stupids write that the C print functions are dangerous. Maybe I was also the only one never had a problem using pointers in C. We have a saying here in Germany: Wenn der Bauer nicht schwimmen kann, dann ist die Badehose schuld! This means: If the farmer can not swim the reason are bad swimming trunks!
Planned enhancements
- Support of Oracle Data Pump instead of Export/Import. Actual I do not know why? Maybe for databases >2TB.
- Build in HTML interpreter for SSH sessions. For example to show AWR report direct during creation.
- Built in PDF, DOC, PNG, TXT and HTML viewer
- Make comboboxes usage a little bit more handy/ user friendly
- Make it the first Oracle database On Call management suite for the iPhone 3G
- Write a generic installer for Windooze and Linux (seems that installation will become more complex as expected)
- Implement Multi dimensional endless ring list to be able to implement a learning virtual DBA
- Make the Watchdog project of OraForecast.com the agent of fdbsync
Discussions
- Firewall related issues
History
- 2007.12.09 Start of project
- 2009.09.08 Added encryption of the applications configuration file using LB1502 encryption
- 2009.09.08 Checked password and private key authentication in Windows environments
- 2009.09.08 Added external data source support for master data
- 2009.09.09 Added VT100 and ANSI support for the SSH terminal
- 2009.09.10 Planned to have some major changes to the code to have one JFrame based class for each TAB
- 2009.09.10 Added an enhanced log mechanism to fdbsync to have a timestamp and different log levels
- 2009.09.11 Implemented master data logic to be able to store persons, servers, location and accesses
- 2009.09.18 Added complete master data management for units,persons,servers,databases,three tier and clusters
- 2009.09.23 Added logging for all changes on objects including personal comments to objects
- 2009.09.23 Added document management system in OLAP (Online Analytical Processing) style (Store DOC for object in database)
- 2009.09.23 Planned to change projects name from fdbsync to On Call Commander
- 2009.09.23 Made already published linear regression and trace file analyzers compileable for Eclipse
- 2009.09.23 Added a lot of functional parameters to users, servers, instances and third tier applications
- 2009.09.28 Added a new demo version for download
- 2009.10.03 Added a new demo version for download
- 2009.10.03 Added a german language wmv film to preliminary directory to explain the actual implemented features of fdbsync
- 2009.10.04 Added automated filename conversion from Windows to Linux/Unix and back
- 2009.10.04 Added viewer rules for common file types for Windows and Linux. Now you can store almost anything to fdbsync.
- 2009.10.07 Added hardware and contract tabs. Actual I'm debugging the whole master data management to make it stable
- 2009.10.07 Working on an import module to import tnsnames.ora and CSV files into the fdbsync repository. A must!
- 2009.10.12 Changed the functions for object deletion. Was a bug. If an object was deleted than the dependent objects (log,doc) not
- 2009.10.12 Added some functionality to the tree view for the objects. Got an idea how to implement C Elipse (functions with (...))in Java.
- 2009.10.20 TNSNAMES.ORA import is in stage test
- 2009.10.20 Implemented into fdbsync the idea of spare coded associative matrixes (Simple form of AI)
- 2009.10.25 Worked on the tree view.
- 2009.10.25 Added a tab to manage Backup and Recovery credentials
- 2009.10.25 Added hierarchies for units, users, operating systems (to configure HACMP, SUN Cluster), databases (RAC), third tier (SAP, APACHE)
- 2009.11.22 Upload new preliminary version as demo
- 2009.12.07 Changed installation procedure, added an encrypted field for root password, implemented storage of SSH keys in the repository
- 2009.12.07 Added a document management logic to the documentation tab to be able to manage parallel work on documents just the way SCCS, PVCS, SourceSafe manages it.
Known bugs
- Reported Description of problem Fixed Release
- 2009.08.31 Started project
- 2009.10.03 There is no real release of fdbsync available so actual fdbsync itself is a bug. ;-)
- 2009.10.07 Found a bug in the SQL apply engine which creates the repository. Bad thing a user have tu run setup.sql manual.
- 2009.12.07 Installation does not work if user not already exists (Fixed next preliminary)
- 2009.12.07 TNSNAMES import will work only after a user pressed a key within the comboxes which defines the default (minor problem)
- 2009.12.07 Document search will not work in DOC tab because if someone clicks in the path field settings are lost (Fixed next preliminary)
Running example
- Will add a Java Applet for demo purpose at this page as soon as possible
The actual status (2009.09.23) of the project is that I've implemented a master data management to handle locations, units, persons (including hierarchy in tree style), physical units (SAN, LAN/WAN, Computers, Storages, Backup Libararies and so on), logical servers (different OS vendors), database instances (different database vendors, Oracle Single Instance, RAC, DataGuard, Failsafe), third tier applications (SAP, Remedy, UC4), full logging of object changes (CRUD - Create, Update, Delete) and documentations storage. I'm actual (20091020) working on the useability of this functions.
I also implemented base availability tests like ping, tnsping and tracert/traceroute. One problem which took some hours to solve was to make these tests run within Windooze and Linux. It's just planned to allow users to implement their own check strategies and check hierarchy. For example: If a ping fails, than run tracert to find the network ressource which fails. fdbsync actual shows a traffic light for servers, instances and third tier applications at their master data dialogs. But it is planned to have this within the tree view. That's the reason why I've implemented the idea of spare coded associative matrixes within the tree view because fdbsync is planned as an on call and document management system for huge data centers it is required to guess what the user wants to see and only fetch from the database what is required. Such a tree view looks simple but the coding is sometimes strange. Nevertheless spare coded associative matrixes will reduce the number of lines to a few ones.
The master data handling is the key of the application because having all of the master data (German: Stammdaten) will be the base for a lot of interesting features which could be designed fast. Including support of incident management, system checks and so on. That's the reason why I've implemented a function which is able to import servers and database instances from a tnsnames.ora into a dummy contract assigning it defaults for responsible persons and book keeping stuff. This is actual in stage test.
The parts I will work in October 2009 are just to allow users to create a full tree (Windows explorer style) with the data which can represent a large company with dozens of data centers and hundreds of projects. I've already designed the data model for that and it will work in the next few weeks (20091020) using spare coded associative matrixes.
After this is done I will implement a proper ssh (with full fsora support and some basic features like tablespace and rman based backup and recovery management in Putty style) and scp (WinSCP style) client and than publish the first release of fdbsync.

