How do I migrate TDengine data to other server? - tdengine

I have server A with TDengine 3.0.2.4 installed, I want to migrate it to server B
but after I move the datafile to B and then change taos.cfg and dnode.json with proper connection information, the startup operation is failed
May I know the detail operation for that? I didn't find it in documentation.

TDengine uniquely marks a machine according to the hostname. For version 3.0, moving data files from machine A to machine B requires reconfiguring the hostname on machine B to the hostname on machine A.
Note 3.x is incompatible with the storage structure of previous versions 1.x and 2.x. You need to use migration tools or develop your own applications to export and import data.

Related

How to input source and target database parameters in IBM Data Replication 11.4.0.4?

Though IBM states it supports Oracle, there is no clear cut documentation on how to provide the input parameters like the TNS names inside either the IIDR configuration tool or the Management Console.
IIDR Configuration not allowing Oracle Parameters
Management Console not allowing Oracle either
The screenshot linked refers to the configuration parameters of the IBM CDC agent for Db2, not for Oracle Database.
Current CDC version (11.4+) has a unified installer for all agent types on the particular operating system, however, each source and target type needs to be installed separately. The type of the agent to be installed is asked by the installer.
IBM CDC documentation lists the necessary configuration steps for Oracle: https://www.ibm.com/docs/en/idr/11.4.0?topic=databases-configuring-cdc-replication-engine-oracle
Please note the "CDC for XStream" agent configuration as well, for newer Oracle Database versions using some features like long object names and encryption: https://www.ibm.com/docs/en/idr/11.4.0?topic=xstream-configuring-cdc-replication-engine-oracle
There are also videos with step-by-step configuration, for example: https://www.youtube.com/watch?v=K6veQyQMz94

Oracle Database Express Edition for Mac

I start my second semester of university on the 6th of July and one of my subjects is Database Concepts.
For the subject, we must install two programs "Oracle SQL Developer" and 'Oracle Database Express Edition". There is a Mac version Oracle SQL Developer but only Windows or Linux for Oracle Database Express Edition. I tried to install the latter with Docker but keep running into issues. Mainly when I start it there are no logs and I always get this error:
"The Oracle Database is not configured. You must run '/etc/init.d/oracle-xe-18c configure' as the root user to configure the database.
The following output is now a tail of the alert.log:
tail: cannot open '/opt/oracle/diag/rdbms///trace/alert*.log' for reading: No such file or directory
tail: no files remaining"
I have followed this tutorial and done exactly what he does but at timestamp 11:47 you can see that he has log messages while I just have the error posted above.
https://www.youtube.com/watch?v=CbopSCwATIg
Hoping someone can help me with this, if I can't fix this then I will have to use my Windows partition which isn't very convenient. If there. is no solution to this can someone please recommend an alternative of Oracle Database Express Edition for Mac that is free?
Many thanks.
To run the Oracle Database in MacOS, you have different choices. The most easy ones are:
Oracle Cloud Free Tier
You can setup your free online Oracle Cloud Free Tier environment and configure your local SQL Developer installation to the Cloud environment. https://www.oracle.com/cloud/free/
For further information about the Cloud Free Tier environment, check the posts https://dgielis.blogspot.com/2019/09/best-and-cheapest-oracle-apex-hosting.html from Dimitri Gielis for detailed instructions on how to do that.
Note that this is the only option if you own an ARM64 (M1/M2) based Mac.
Vagrant/VM
For a local setup, this is the most easy way in my opinion, since I'm not an experienced user of Docker. Oracle has made Virtual Machines available for free, https://github.com/oracle/vagrant-projects
Use the OracleDatabase v18.4.0-XE or v19.3.0 image, if you need the database only.
Use the OracleAPEX (v18.4.0-XE) image, if you intend to use APEX as well.
Docker
If you are known to Docker or want to learn it, you can follow the link in #Bjarte Brandt comment https://github.com/bjarteb/oracle-apex-ords. The setup documentation in that link is quite comprehensive.
Update due to Apple's M1/M2 processor
Since Apple introduced new M1/M2 mac's based on the ARM cpu architecture, the only option left available for the moment is the Oracle Cloud Free Tier. Unfortunately, VirtualBox VM doesn’t support the ARM architecture yet and it doesn’t work with Rosetta..
(13/09/2022) Oracle SQL Developer 22.2.1 is now natively available for MacBook M1/M2 clients. Previous versions would need Rosetta to run. Unfortunately, no signs for VirtualBox supporting ARM yet..
If you own a MAC based on the 'old' Intel processor, you would still have the other two options as well.
I will update this answer when more options for M1/M2 mac's become available.

Is it possible to upgrade directly from Datastage 7.5.3 to 11.7.1?

We are migrating from Datastage 7.5.3 to 11.7.1. I was wondering whether we need to upgrade to an intermediate version of Datastage? Is there any conversion tool available? Any inputs from people who have experience in a similar upgrade are appreciated. Thanks
There is no option for in-place upgrade from DataStage v7 directly to Information Server v11.
You will need to install Information Server 11.7.1 (either to same machine in side-by-side config if machine has enough resources for both environments, or to a new server). You can then export all of your existing DataStage jobs in v7 environment to dsx file that you can then import into the new environment.
More information on migration steps can be found here:
https://www.ibm.com/support/knowledgecenter/SSZJPZ_11.7.0/com.ibm.swg.im.iis.productization.iisinfsv.migrate.doc/topics/top_of_map.html
Though this document does not list specific steps for DataStage v7.5, the steps for DataStage v8 are equivalent as long as you export jobs as dsx files since istool did not exist in DataStage v7.
There have been many changes to DataStage between versions 7.5 and 11.7 which you need to be aware of when moving jobs from old release to new release. We have documented these changes for DataStage 8.5, 8.7, 9.1 and 11.3 releases. Since you are jumping past all these releases, all the documents are relevant and I will link them below and HIGHLY recommend reviewing them as they can affect behavior of jobs and also result in errors. In some cases we document in these technotes environment variables that can be set which will switch back to the old behavior.
Additionally, in the last few releases a number of the older enterprise database stages for various database vendors have been deprecated in favor of using newer "Connector" stages that did not exist in v7.5. For example, DB2 Enterprise stages should be upgraded to DB2 Connector, Oracle stages to Oracle connector, etc.
We have a client tool, the Connector Migration tool which can be used to create new version of job with the older stages automatically converted to connector stages (you will still need to test the jobs).
Also, when exporting jobs from v7.5, export design only...all jobs need to be recompiled at new release level so exporting executable is waste of space in this case.
If you do have a need to also move hash files and datasets to new systems, there are technotes on IBM.com that dicuss how to do that, though I cannot guarantee the format of datasets have not changed between 7.5 and 11.7.
You will find that in more recent releases we have tightened error checking such that things which only received warnings in past may now be flagged as errors, or conditions not reported at all may now be warnings. Examples of this include changes to null handling, such as when field in source stage is nullable but target stage/database has field as not nullable. Also there are new warnings or errors for truncation and type mismatch (some of those warnings can be turned off by properties in the new connector stages)
Here are the recommended technotes to review:
Null Handling in a transformer for Information Server DataStage Version 8.5 or higher
https://www.ibm.com/support/pages/node/433863
Information Server Version 8.7 Compatibility
https://www.ibm.com/support/pages/node/435721
InfoSphere DataStage and QualityStage, Version 9.1 Job Compatibility
https://www.ibm.com/support/pages/node/221733
InfoSphere Information Server, Version 11.3 job compatibility
https://www.ibm.com/support/pages/node/514671
DataStage Parallel framework changes may require DataStage job modifications
https://www.ibm.com/support/pages/node/414877
Product manual documentation on deprecated database stages and link to Connector Migration Tool:
https://www.ibm.com/support/knowledgecenter/en/SSZJPZ_11.7.0/com.ibm.swg.im.iis.conn.migtool.doc/topics/removal_stages_palette.html
Thanks.

How to use off line/cache database and synchronise with online server

I want to use offline and locale data base and when network is available, send data to the server. What are solutions ?
Server is linux running postgresql 9.5 or higher. Local and offline data base is Libreoffice 6.2.7 or OpenOffice for WINDOWS7 and WIndows10 64bits
I think about sql code to do the task but I never found how to deal with two database in an sql code.
It is like INSERT ... TO ... database.table ...

How to determine which version of "Oracle.DataAccess.dll" to include

While deploying my .NET 3.5 Windows form to different environments we ran with lots of invalid provider issues.
It works on some and doesn't work on others.
Could someone please help me out, how do I determine which version of "Oralce.DataAccess.dll" to use i.e. 9 or 10 or 11 or 9.1.* or 10.1.* or 11.* or 12 etc.
Does it depend on server where I'm installing an application? OR
Does it depend on back end oracle database?
I second the notion of using the 100% managed provider. It eliminates the need to know details I'm about to discuss. The only issue here is I think you might need to upgrade to .net 4.0.
TLDR Version:
Use the 12c 100% managed provider instead.
The short answer is don't mix the provider (Oracle.DataAccess.dll) with a different version of the unmanaged client (at least not backwards).
Consider redesigning to include a service layer that eliminates the need to have the Oracle provider on the client in the first place.
Full version:
First, lets make sure we understand the components of the old unmnaged provider (not the new 12c 100% managed provider). It's made up of two pieces:
the managed .net component - Oracle.DataAccess.dll
the unmanaged (non-.net) client
Simply speaking, Oracle.DataAccess.dll is nearly just a wrapper, translating .net instructions into ORACLE-NET instructions for the unmanaged client.
That said, when you load Oracle.DataAccess there is a order in which it tries to locate the unmanaged client dlls that it needs. From the Oracle Documentation:
The Oracle.DataAccess.dll searches for dependent unmanaged DLLs (such
as Oracle Client) based on the following order:
1.Directory of the application or executable.
2.DllPath setting specified by application config or web.config.
3.DllPath setting specified by machine.config.
4.DllPath setting specified by the Windows Registry.
HKEY_LOCAL_MACHINE\Software\Oracle\ODP.NET\version\DllPath
5.Directories specified by the Windows PATH environment variable.
This comes into play if you have more than one client installed on the machine so this could be part of your issue. If so, the simple thing to do is use the dllPath configuration variable in your config:
<configuration>
<oracle.dataaccess.client>
<add key="DllPath" value="c:\oracle\product\1.1.0-xcopy-dep\BIN"/>
</oracle.dataaccess.client>
</configuration>
Now, to answer your question directly - I don't believe Oracle supports mismatching Oracle.DataAccess.dll with it's client (at least not backwards). Your best bet is either to install ODP.net with your app install - the xcopy version is the smallest and contains the "instant client" Or, you should be thinking about minimum system requirements - ie. The system must have at least version X of odp.net installed. You could then compile against that minimum dll and rely on publisher policy redirection when a target system has a NEWER version of the client.
Of course this also prompts me to ask about architecture. Do you plan on prompting the user for their Oracle account? If not, you have to be careful on how you protect the shared service account your application will use. You may be better off making calls to a webservice that makes the oracle calls on the clients behalf - giving you another security layer and simplifying your client deployment.
Most version of ODP.net are backwards compatible with the database server - you can certainly use the 11g provider with a 10g database.
First of all clarification:
You have an Oracle Database Server (you called it "back end oracle database") and an Oracle Client (no matter if this is installed on an application server, from Oracle point of view, it is the client)
The version of ODP.NET (Oracle Data Provider for .NET, i.e. the Oracle.DataAccess.dll and some more files) are defined by the Oracle Client. You can use almost every ODP.NET version to connect to every Oracle database version - more or less.
The error message "The provider is not compatible with the version of Oracle client" could also mean there is no ODP.NET provider installed at all. In this case the error message is indeed a bit misleading. So, first check if ODP.NET is installed at all, it is not included in standard Oracle Instant Client installation.
When I check all available downloads from Oracle you have ODP.NET version
9.something
10.something
1.x
2.0
4.0
9.? and 10.? refers to version of Oracle, 1.x, 2.0 and 4.0 refers to version of Microsoft .NET Framwork (strange numbering, but that's how it is). Version 9.? and 10.? are very old, I don't think it makes any sense to use them. 1.x was supported until Oracle client version 11.1.
If your Oracle client is 11.2 or higher you are forced to include ODP.NET version 2.0 or 4.0.
If your Oracle client is between 10.2 and 11.1 you can use eiter ODP.NET version 1.x or 2.0
If your Oracle client is older than 10.2, I don't know how it works - it's outdated anyway.
Version 1.x and 2.0 are not compatible to each other, i.e. perhpaps you have to provide two different setup files of your application to your customer and the customer has to select the correct one depending on his local oracle client installation.
I don't know the situation for 2.0 vs. 4.0, I never used 4.0 so far.
It is not required to put a local copy of Oralce.DataAccess.dll into your application directory. It will be taken from GAC (Global Assembly Cache) where it is installed.
In your developing you only have to take care only these mayor version, for example 2.0.
Then your loal GAC knows due to policy files which exact version is loaded, e.g. 2.0.10.2.0.2.20 or 2.0.11.1.0.6.20 or 2.0.11.1.0.7.20 or 2.0.11.2.0.1.2 or whatever.
On top of this all you have to know whether your Oracle client is 32bit or 64bit and include ODP.NET accordingly.
Here you can get more information: Oracle Data Provider for .NET FAQ
if you have client or oracle instance installed in your system. check the folder name
ORACLE_HOME\product\11.2.0\dbhome_1\ODP.NET\bin\2.x
here you will find the file - Oracle.DataAccess.dll
just include in your reference.
In fact I believe there is no right answer.
It all depends on the processor architecture (so bits) the application runs with, the version of OCI client you use, etcetera.
I found it most useful to wrap the Oracle interaction in one class, using Reflection to find the available version to use.
Regarding the version number: the version of the ODP.net assemblies must match those of the OCI client installation. It is a bad idea to mix the 12.* OCI client with the 10.* ODP.net assemblies.
Maybe this article is also useful to you.
If your Oracle server is version 10.2 or higher, you could consider simply using the managed ODP.NET version which came available with Oracle 12.
Apparently it's one dependency, under 10 MB. It should make deploying your application to different systems a lot easier compared to the ODP.NET versions that depends on Oracle (instant) Client. It should also avoid you having to care about any installed Oracle Client.
However, they do mention it works on "the latest version of the .NET Framework 4.5.1", so from what I understand you need to upgrade your application to 4.5.1, but maybe that is only if you want to use the certain features (like the Entity Framework support).
http://www.oracle.com/technetwork/topics/dotnet/index-085163.html
Sometimes you get the Could not load file or assembly 'Oracle.DataAccess' or one of its dependencies. whereas you have the right dll and the problem is somewhere else.
It happen to me (and this topic helped me a lot to figure it out) and it was the configuration of my application pool in IIS who wouldn't allow 32 bit applications (advanced settings).

Resources